精华内容
下载资源
问答
  • 我在哈佛大学计算机科学的课程上看到教授讲到long long这个数据类型,占8字节 但是我在自己的两种自学教材上的数据类型表上都没有看到这个longlong,为什么书上没有呢
  • C语言的数据类型 通俗说就是用不同的盒子装不同的物品,如:基本数据类型分为整型(存放整数)、浮点型(存放小数)、字符型(存放字符)、存放地址的数据类型(指针)、派生出来的数据类型:数组,结构体,共用体,枚举,...

    C语言的数据类型 通俗说就是用不同的盒子装不同的物品,如:基本数据类型分为整型(存放整数)、浮点型(存放小数)、字符型(存放字符)、存放地址的数据类型(指针)、派生出来的数据类型:数组,结构体,共用体,枚举,位域等,根据存放的数据的不同,需要定义不同的类型变量。

    b4f337a3a8c84ec080d3c7c1b8ba7d1b.png

    C 语言包含的数据类型如下所示:

    1、整型

    整形包括短整型、整形和长整形。

    2、短整形

    short a=1;

    3、整形

    一般占4个字节(32位),最高位代表符号,0表示正数,1表示负数,取值范围是-2147483648~2147483647,在内存中的存储顺序是地位在前、高位在后,例如0x12345678在内存中的存储如下:

    地址:0x0012ff78 0x0012ff79 0x0012ff7a 0x0012ff7b

    数据: 78 56 34 12

    定义:用int关键字,举例如下:

    int a=6;

    4、长整形

    long a=10;

    5、浮点型

    浮点型包括单精度型和双精度型。

    6、单精度型

    浮点型,又称实型,也称单精度。一般占4个字节(32位),

    float a=4.5;

    地址:0x0012ff78 0x0012ff79 0x0012ff7a 0x0012ff7b

    数据: 00 00 90 40

    7、双精度型

    一般占8个字节(64位)

    double a=4.5;

    地址:0x0012ff78 0x0012ff79 0x0012ff7a 0x0012ff7b 0x0012ff7c 0x0012ff7d 0x0012ff7e 0x0012ff7f

    数据: 00 00 00 00 00 00 12 40

    8、字符类型

    在各种不同系统中,字符类型都占一个字节(8位)。定义如下:

    char c='a';

    也可以用字符对应的ASCII码赋值,如下:

    char c=97;

    365e0a17d6cb126acf47f2fa3f27ec40.png

    总的来说short、int、long、char、float、double 这六个关键字代表C 语言里的六种基本数据类型。当标识符由多个词组成时,每个词的第一个字母大写,其余全部小写。比如: int CurrentVal; 这样的名字看起来比较清晰,远比一长串字符好得多。

    尽量避免名字中出现数字编号,如Value1,Value2 等,除非逻辑上的确需要编号。比如驱动开发时为管脚命名,非编号名字反而不好。 初学者总是喜欢用带编号的变量名或函数名,这样子看上去很简单方便,但其实是一颗颗定时炸弹。这个习惯初学者一定要改过来。 对在多个文件之间共同使用的全局变量或函数要加范围限定符(建议使用模块名(缩写)作为范围限定符)

    标识符名分为两部分:规范标识符前缀(后缀) + 含义标识。非全局变量可以不用使用范围限定符前缀,作用域前缀命名规则、数据类型前缀命名规则、含义标识命名规则,变量命名使用名词性词组,函数命名使用动词性词组。例如:变量含义标识符构成:目标词+ 动词(的过去分词)+ [状语] + [目的地]。

    665c7ebd98e5d32ec1766984997e12f5.png

    以上便是小编对“C语言数据类型是什么?”的大致介绍,希望对您有所帮助!

    展开全文
  • Long类型数据比较

    万次阅读 2018-08-07 16:19:18
    注意:long类型和Long类型是不一样,long类型属于基本的数据类型,而Long是long类型的包装类,至于区别是什么再次不做过多详细的解释。 1. 首先说==和equals()方法的区别: ==号在比较基本数据类型,比如int作比较...

    之所以记录是因为在开发过程当中,碰到了两次因为个人原因Long类型判断出错导致的bug,因此在此关于Long类型数据比较做一个记录。
    注意:long类型和Long类型是不一样,long类型属于基本的数据类型,而Long是long类型的包装类,至于区别是什么再次不做过多详细的解释。

    1. 首先说==和equals()方法的区别:
    ==号在比较基本数据类型,比如int作比较的时候比较的是值。而当去比较两个对象的时候,便成了比较两个对象的地址,在开始的时候也说Long类型是long的包装类因此当用==比较的时候便会发生错误。
    equals()方法存在于Object类当中,Object是所有类的直接和间接父类,Object类当中的equals源码当中写了,当没有重写equals()方法时,equals()和==的效果是一样的,但是像Long这种包装类都是重写了equals()方法的。

    2. 怎么去比较两个Long类型的数据:
    第一种方法使用Long类型的longValue()方法,这个方法作用是:取到Long类型当中的值,然后我们就可以正常的用==去比较,例如:

    Long a = new Long(345);
    Long b = new Long(345);
    System.out.println(a.longValue()==b.longValue())

    第二种方法使用Long类型的equals()方法,这个方法我们可以去查看一下源码,源码如下:

    public boolean equals(Object obj) {
            if (obj instanceof Long) {
                return value == ((Long)obj).longValue();
             }
             return false;
         }

    查看源码我们可以发现,Long类型的equals()方法当中,也调用longValue()方法然后再去比较大小。
    因此在使用过程当中我们可以采用这两种方式去进行比较Long对象(类型)的大小。
    其实一开始也解释了,Long属于对象,对于对象来讲大家都知道不能直接用==去比较。
    注意:这可能是让人费解的一个地方,请看如下代码

    Long i = 12L;
    Long j = 12L;
    System.out.println(i==j);//true

    很神奇,比较i和j的时候是Long类型,然后取比较打印的结果是true,之所以会产生这种现象是因为Long类型内部有一个内部类,维护了一个cache。源码当中是这样写的:

    //552行
    public static Long valueOf(long l) {
        final int offset = 128;
        if (l >= -128 && l <= 127) { // will cache
            return LongCache.cache[(int)l + offset];
        }
            return new Long(l);
    }
    //528行
    private static class LongCache {
        private LongCache(){}
    
        static final Long cache[] = new Long[-(-128) + 127 + 1];
    
        static {
            for(int i = 0; i < cache.length; i++)
            cache[i] = new Long(i - 128);
        }
     }

    也就是说在-128到127的值,都放在了cache中,不会新创建对象,因此==是成立的,当超过了这个范围,便无法使用==进行判断了。

    关于Long类型的比较就这些,如果有说的不对的请及时指正

    展开全文
  • 什么float比long类型数据范围大

    千次阅读 2019-08-07 22:20:54
    float比long类型数据范围大。 float:4个字节 long:8个字节 为什么float的4个字节比long类型的8个字节的范围大? 因为整数与小数的底层存储有点不同。 相同点:它们都用二进制存储的 不同点: 小数先转成二进制...

    float比long类型的数据范围大。
    float:4个字节
    long:8个字节

    为什么float的4个字节比long类型的8个字节的范围大?
    因为整数与小数的底层存储有点不同。
    相同点:它们都是用二进制存储的
    不同点:
    小数先转成二进制,然后处理,然后存储。

    符号位 其中最左边的为符号位,0为正,1为负。
    指数 接下来的E是指数,一共8位,也用二进制来表示。IEEE规定,在float类型中,用来计算指数的偏移量为127(即存贮指数时要在原基础上+127)。
    尾数 最后的F是小数部分,尾数正是由这23位的小数部分+1位组成的。

    float实际指数的取值范围为-126~+127(其中-127和128作为特殊规定)
    于是float的取值范围为(尾数位最小值)-2* 2^127 到(尾数位最大值)+2*2^127
    即-2^128到+2^128,表示为十进制为-3.4*10^38到+3.4*10^38
    

    而long的范围是
    -9223372036854775808~9223372036854775807(只有19位)
    所以float的范围远大于long,但是如果将long强制类型转换为float可能会出现经度损失(float的精度为科学记数法的小数点后6~7位)。

    展开全文
  • C/C++: short , int , long , long long数据类型选用标签: C...那么,选择数据类型的条件是什么呢? 我认为,大于30000的数字应当使用long类型,超过20亿的数字应当使用long long类型。原因如下:在32位的系统中: `s

    C/C++: short , int , long , long long数据类型选用

    标签: C/C++ 数据类型

    by 小威威


    在C++中,编译器对int类型数据的执行效率最高。一般在符合int条件的情况下优先选择int
    那么,选择数据类型的条件是什么呢?
    我认为,大于30000的数字应当使用long类型,超过20亿的数字应当使用long long类型。原因如下:

    32位的系统中:
    `short`与`int`占两个字节, `long` 占四个字节, `long long` 占八个字节;
    在64位的系统中:
    `short`占两个字节, `int` `long` 占四个字节, `long long` 占八个字节。

    (注:2的16次方 = 65536 ; 2的32次方 = 4294672296; 2的64位 = 18446744073709551616)

    为什么大于30000的数字应当用long类型呢?在64位系统中int类型占四个字节,是32位,不是足以储存大于30000的部分数字的么?

    int a = 40000; 
    long b = 40000;
    

    这主要是考虑到代码的移植性问题。因为在64位系统中,int类型占4个字节,但在32位系统中,int类型占2个字节。也就是说,当我们把一个大于(65536/2)的数用int类型储存,在64位系统上不会出现问题,但是将此程序在32位系统运行时数据就会超出范围,导致结果错误。因此,为了确保代码移植性高,应将大于(65536/2)的数定义为long类型。

    同理,当数字大于(4294672296/2)时,应定义数据为long long 类型。

    那么,什么时候用short类型呢?不是说一般优先考虑int类型么?原因如下:

    在32位系统中,定义一个short类型的数组与一个int类型数组,其存储的数据在short的范围以内。此时将代码放在64位系统运行,int类型数组所占用的内存大约是short类型数组的两倍。大大增加了内存的占用。因此,在这种情况下,还是用short 类型数组较为妥当。

    总而言之,大于30000的数据用long类型储存,大于20亿的数据用 long long储存。


    以上内容皆为本人观点,欢迎大家提出批评和指导,我们一起探讨!


    展开全文
  • Java 中提供了八种数据类型:6个数字类型(四个整数型,两个浮点型)、字符类型、布尔型。依次分别 : byte、int、short、long、float、double、char、boolean。byte类型数据占1个字节,8位,最高位表示符号,则表示...
  • 如果你测试过long和int内置类型的大小,当发现都为4字节时,可能都会产生疑问,如果都4字节,long并没有提供更大的存储范围,那么还要long什么用?本文如下内容将为你解开这些疑团。 先简要概述以下内置类型的...
  • 今天温习的时候发现,之前理解的不太对,现在记录一下: 首先float的f必须要加的...1.float类型末尾加f因为:例如 float f = 4.0f ,4.0浮点数,默认double类型,如果不加f去标记的话,那这个浮点数就是从doub
  • PVOID是什么数据类型

    千次阅读 2018-06-16 15:56:27
    PVIOD 一个普通指针类型等价于(viod *)还有一些对你有用win api 编程中的数据类型很多,有没有人能 具体讲讲啊?CALLBACK 在应用程序的回调例程中取代FAR PASCALHANDLE 一个32位的无符号整数,用作句柄HDC 设备...
  • 什么float的4个字节比long类型的8个字节范围大? 因为整数和效数的底层存储有点不同。 两种都用二进制存储的但是小数会先转成二进制再处理然后存储。 浮点数的32位不是简单的直接表示大小,而是按照一定的标准...
  • 一、数据类型基础3.1什么是数据类型数据类型是一组性质相同的值的集合以及定义在这个值集合上的一组操作的总称(集合指具有某种特定性质的具体的或抽象的对象汇总而成的集体。)3.2数据类型的分类?一、基本数据...
  • 数据类型的分类Java一种强类型语言,所有变量都需要先定义才能使用基本数据类型1.整数类型byte占1个字节:-128~127short占2个字节int占4个字节:正负21亿long占8个字节2.浮点类型float占4个字节double占8个字节3....
  • 标识符命名规则: 标识符只能以字母、下划线、美元符开头。...数据类型分为基本数据类型和引用数据类型。 基本数据类型: 1数值型  1.1整数型:  byte(一个字节范围-128-127)、short(两...
  • 我们先了解一下能从这篇文章得到些什么JAVA八种基本数据类型整形浮点型字符型布尔型类型转化变量命名规则关键字JAVA中的八种基本数据类型首先在JAVA中有八种基本数据类型JAVA语言已经设定好了的。八种基本数据...
  • 在了解基本数据类型的时候,我们需要了解基本数据类型有哪些?数字int、布尔值bool、字符串str、列表list、元组tuple、字典dict等数字 ---> int类(推荐学习:Python视频教程)当然对于数字,Python的数字类型有int...
  • 在变量声明时不会限制数据类型,所以后端返回的什么数据类型前端接收到之后就是什么数据类型,js中用53位保存数据,能精准表示的最大证书Math.pow(2, 53),十进制即 9007199254740992,后端返回的long类型的数据...
  • 基本数据类型包括byte、int、char、long、float、double、boolean和short。说到Java的基本数据类型必须谈到的两个类DataInputStream和DataOutputStream。它们提供了对Java基本数据类型的操作,但是这些方法事实...
  • 一、Python中的数据类型整数, 如 1 -100长整数, 比较大的整数,Python 2里面有long长整数;Python 3里面没有浮点数 如 1.23、3E-2布尔类型 False True二、Number(数字)类型三种:int整型2)Float 浮点型,默认保留...
  • Python数据类型之int long float

    千次阅读 2020-10-27 17:14:44
    文章目录什么是数据类型?1. int(整型)2. long(长整型)3.float (浮点型) 什么是数据类型? 我们人类可以很容易的分清数字与字符的区别,但是计算机并不能呀,计算机虽然很强大,但从某种角度上看又很傻,除非你...
  • uint8_t是什么数据类型

    2014-06-21 13:31:31
    咋一看,好像个新的数据类型,不过C语言(nescC的扩展)里面好像没有这种数据类型啊!怎么又u又_t的?很多人有这样的疑问。论坛上就有人问:以*_t结尾的类型是不是都是long型的?在baidu上查一下,才找到...
  • 首先我们要了解什么是数据类型,一个值的集合以及定义在这个值集上的一组操作。而不同的数据类型占用的存储空间不一样,为了更好的利用计算机内存空间,我们需要不同的数据类型来处理数据。我们先看一张基本的图片...
  • 整形和浮点型整形也就是整数类型(int)的,在python3中都int类型,没有什么long类型的,比如说存年龄、工资、成绩等等这样的数据就可以用int类型,有正整数、负整数和0,浮点型的也就是小数类型(folat)的,带小数点...
  • 数据类型 强类型语言 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用 Java的数据类型分为两大类 基本数据类型(primitive type) //四个整数类型 int num1 = 999; //int 占四个字节范围 //int ...
  • 详细内容在了解基本数据类型的时候,我们需要了解基本数据类型有哪些?数字int、布尔值bool、字符串str、列表list、元组tuple、字典dict等数字 ---> int类(推荐学习:Python视频教程)当然对于数字,Python的数字...
  • 基本数据类型(8种): 4 整型 byte(字节型) short(短整型) int(整型) long(长整型) 2 浮点型 float(单精度) double(双精度) 1 字符型 char 1 布尔型 boolean 引用数据类型 数组[] 类class(抽象类...
  • 它有一个名为filedata的列,数据类型是长原始的.在此列中,excel文件的十六进制表示形式存储为D01A01 …..现在我有一个名为’PROC_STORE_DATA’的过程.我从我的java类调用此过程并尝试在该表列中插入excel电子表格内容...
  • 它有一个名为filedata的列,数据类型是长原始的.在此列中,excel文件的十六进制表示形式存储为D01A01 …..现在我有一个名为’PROC_STORE_DATA’的过程.我从我的java类调用此过程并尝试在该表列中插入excel电子表格内容...
  • 认识基本数据类型在学习基本数据类型之前,我们先认识一下这两个单词:1、bit --位:位计算机中存储数据的最小单位,指二进制数中的一个位数,其值为“0”或“1”。2、byte --字节:字节计算机存储容量的基本...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,601
精华内容 1,040
关键字:

long是什么数据类型