精华内容
下载资源
问答
  • #include void main() ... //使用sizeof验证数据类型在内存中占用的空间大小 // char // int // short // long // unsigned int // float // double // long double printf("在64位机器中:\n"); printf(
    #include<stdio.h>
    void main()
    {
        //使用sizeof验证数据类型在内存中占用的空间大小
    //    char
    //    int
    //    short
    //    long
    //    unsigned int
    //    float
    //    double
    //    long double
        printf("在64位机器中:\n");
        printf("        char类型占%d个字节\n",sizeof(char));
        printf("       short类型占%d个字节\n",sizeof(short));
        printf("         int类型占%d个字节\n",sizeof(int));
        printf("        long类型占%d个字节\n",sizeof(long));
        printf("unsigned int类型占%d个字节\n",sizeof(unsigned int));
        printf("       float类型占%d个字节\n",sizeof(float));
        printf("      double类型占%d个字节\n",sizeof(double));
        printf(" long double类型占%d个字节\n",sizeof(long double));
        printf("-------------------指针占4个字节---------------------\n");
        char *p0;
        short *p1;
        int *p2;
        long *p3;
        unsigned int *p4;
        float *p5;
        double *p6;
        long double *p7;
        printf("        char类型指针占%d个字节\n",sizeof(p0));
        printf("       short类型指针占%d个字节\n",sizeof(p1));
        printf("         int类型指针占%d个字节\n",sizeof(p2));
        printf("        long类型指针占%d个字节\n",sizeof(p3));
        printf("unsigned int类型指针占%d个字节\n",sizeof(p4));
        printf("       float类型指针占%d个字节\n",sizeof(p5));
        printf("      double类型指针占%d个字节\n",sizeof(p6));
        printf(" long double类型指针占%d个字节\n",sizeof(p7));
    }
    

    结果:

    在64位机器中:
            char类型占1个字节
           short类型占2个字节
             int类型占4个字节
            long类型占4个字节
    unsigned int类型占4个字节
           float类型占4个字节
          double类型占8个字节
     long double类型占12个字节
    -------------------指针占4个字节---------------------
            char类型指针占4个字节
           short类型指针占4个字节
             int类型指针占4个字节
            long类型指针占4个字节
    unsigned int类型指针占4个字节
           float类型指针占4个字节
          double类型指针占4个字节
     long double类型指针占4个字节


    展开全文
  • 那么问题来了,也是今天想讨论的重点:Boolean到底占多少字节? 查看JDK源码并无法得到其大小,然后通过网上查找资料得到如下干货,有意思有意思。 注明:以下文字来源于:...

    直接上图:

    输出结果:

    那么问题来了,也是今天想讨论的重点:Boolean到底占多少字节?

    查看JDK源码并无法得到其大小,然后通过网上查找资料得到如下干货,有意思有意思。

    注明:以下文字来源于:https://blog.csdn.net/YuanMxy/article/details/74170745  感谢博主!

     

    有以下4种说法:

    1、1个bit(1/8个字节)
    理由:boolean类型的值只有true和false两种逻辑值,在编译后会使用1和0来表示,这两个数在内存中按位算,仅需1位(bit)即可存储,位是计算机最小的存储单位。在传智播客java基础班中也有有此理由(复习时所参考的视频)。


    2、1个字节
    理由:虽然编译后1和0只需占用1位空间,但计算机处理数据的最小单位是1个字节,1个字节等于8位,实际存储的空间是:用1个字节的最低位存储,其他7位用0填补,如果值是true的话则存储的二进制为:0000 0001,如果是false的话则存储的二进制为:0000 0000。

    3、4个字节
    理由:在《Java虚拟机规范》一书中的描述:“虽然定义了boolean这种数据类型,但是只对它提供了非常有限的支持。在Java虚拟机中没有任何供boolean值专用的字节码指令,Java语言表达式所操作的boolean值,在编译之后都使用Java虚拟机中的int数据类型来代替,而boolean数组将会被编码成Java虚拟机的byte数组,每个元素boolean元素占8位”。也就是说JVM规范指出boolean当做int处理,也就是4字节,boolean数组当做byte数组处理,这样我们可以得出boolean类型占了单独使用是4个字节,在数组中是确定的1个字节。

    如果认同第三条,那么存在问题:那虚拟机为什么要用int来代替boolean呢?为什么不用byte或short,这样不是更节省内存空间吗。经过查阅资料发现,使用int的原因是,对于当下32位的处理器(CPU)来说,一次处理数据是32位(这里不是指的是32/64位系统,而是指CPU硬件层面),32 位 CPU 使用 4 个字节是最为节省的,哪怕你是 1 个 bit 他也是占用 4 个字节。因为 CPU 寻址系统只能 32 位 32 位地寻址,具有高效存取的特点。

    4、It depends on Java virtual machine.这取决于java虚拟机 。

    总结:java规范中,没有明确指出boolean的大小。在《Java虚拟机规范》给出了4个字节,和boolean数组1个字节的定义,具体还要看虚拟机实现是否按照规范来,所以1个字节、4个字节都是有可能的。
     

    展开全文
  • 一个int类型到底占多少字节

    万次阅读 2016-08-22 15:14:39
    一个int占多少字节? 这个问题我们往往得到的答案是4. 但是int到底占多少字节,却跟你的机器环境有关. [html] view plain copy  print? As you can see, the typical...

    一个int占多少个字节?

    这个问题我们往往得到的答案是4.

    但是int到底占多少个字节,却跟你的机器环境有关.

    [html] view plain copy
     print?
    1. As you can see, the typical data type sizes match the ILP32LL model, which is what most compilers adhere to on 32-bit platforms. The LP64 model is the de facto standard for compilers that generate code for 64-bit platforms.  

    最近在一本有关代码审计的书上看到如上解释.这里很好的解释了int到底应该占多少个字节.

    而且从他的角度来看是编译器去适应平台.所以真正决定int占多少字节取决于你的device platforms.

    其实无论哪种模型short和char无论哪种model下都保持一致.

    我们见得最多的就是ILP32LL模型.这种模型下int和long已经pointer占4个字节 long long占8个字节.


    PS:这个表很容易记,中间的数字表明你是64bit还是32bit的机器.前面的I表示int,L表示long,LL表示long long,P就表示pointer.

    位于数字前面的类型表示跟中间的bit数保持一致.举个例子:ILP32LL 就是ILP是32位,LL是64位.


    展开全文
  • 【常见数据类型占多少字节问题】

    千次阅读 2017-08-22 22:02:19
    char占 1 字节,short占 2 字节int 、float、long 都占 4 字节,double 占8...int占多少字节既由编译器决定,也由CPU或虚拟机或操作系统决定,但归根结底是由编译器决定。 OS:Linux jiabei-PC 4.9.0-deepin10-am

    指针长度和地址总线有关。因为指针记录的就是一个地址,那么32位的就是4字节,64位的就是8字节。int占多少个字节既由编译器决定,也由CPU或虚拟机或操作系统决定,但归根结底是由编译器决定。


    OS:Linux jiabei-PC 4.9.0-deepin10-amd64 #1 SMP PREEMPT Deepin 4.9.40-1 (2017-07-28) x86_64 GNU/Linux。

    IDE:Code::Blocks 16.01--64bit 


    【测试代码】


    #include <bits/stdc++.h>
    using namespace std;
    int main(){
        double *o = NULL;
        cout<<sizeof(char)<<endl;
        cout<<sizeof(short)<<endl;
        cout<<sizeof(int)<<endl;
        cout<<sizeof(float)<<endl;
        cout<<sizeof(long)<<endl;
        cout<<sizeof(double)<<endl;
        cout<< sizeof(char *) << sizeof(short *) << sizeof(int *) << sizeof(o) << sizeof(double *)<<endl;
        return 0;
        }

    结果为:

    1
    2
    4
    4
    8
    8
    88888


    由上可知,64OS与64bit编译器下char占1字节,short占 2 字节,int 、float、都占 4 字节,long,double 占8 字节,任意类型的指针都占8个字节。

    另32bit编译器测试结果:char占1字节,short占 2 字节,int 、float、long都占 4 字节,double 占8 字节,任意类型的指针都占4个字节。


    展开全文
  • 基本数据类型 类型 字节数 取值范围 byte 1 −27−27-2^7到27−127−12^7-1 short 2 −215−215-2^15到215−1215−12^15-1 int 4 −231−231-2^31到231−1231−12^31-1 long 8 −263−...
  • 基本数据类型 整数型:byte shot int long 浮点型:float double 字符型:char 布尔型:boolean 引用数据类型 类(class) 接口(interface) 数组(array) 占字节数据类型 字节 默认值 ...
  • c++ 基本数据类型长度
  • 一个int类型占用多少字节

    千次阅读 2020-04-03 09:24:59
    在16位的PC机中,char类型占1个字节int类型占2个字节,long int:4个字节,float4个字节,double8个字节字节是什么? 字节(Byte )是计算机用于计量存储容量的一种计量单位,一个字节通常8位长。 16位机...
  • C语言中char、short、int、long各占多少字节

    万次阅读 多人点赞 2018-04-15 14:28:12
    1byte = 8bit 一个字节占8个二进制位 windows操作系统,32位机中, char:1个字节 short:2个字节 int:4个字节 long:4个字节 以下是windows操作系统,32位机下的代码测试结果(32位机中,指针占4个字节,如...
  • java 数据类型占字节数,int char

    千次阅读 2016-06-11 09:36:13
    数据类型占字节数,代码如下: package SimpleGrammar; /** * * @author jaloli * byte和int,char类型区别如下: 1.byte 是字节数据类型 ,是有符号型的,1 个字节;大小范围为-128—127 。 2.char 是字符...
  • int类型占几个字节

    千次阅读 2019-11-06 16:31:55
    数据类型 大小(二进制位数) 范围 默认值 字节数 备注 byte(字节) 8bit -2^7~2^7-1 即-128~127 0 1byte 除以8是字节int(整型) 32bit -2^31~2^31-1 即-2147483648...
  • 在32位机器和64机器中int类型都占用4个字节。编译器可以根据自身硬件来选择合适的大小,但是需要满足约束:short和int型至少为16位,long型至少为32位,并且short型长度不能超过int型,而int型不能超过long型。 这...
  • 在C语言中,double、long、unsigned、int、char类型数据占字节数和机器字长及编译器有关系: 表格形式,易于开发者浏览
  • 常用数据类型占内存字节

    千次阅读 2016-04-21 12:40:42
    常用基本数据类型占内存的字节
  • 基本数据类型占字节

    千次阅读 2017-05-05 23:16:25
    但是,C标准中并没有具体给出规定那个基本类型应该是多少字节数,而且这个也与机器、OS、编译器有关,比如同样是在32bits的操作系统系,VC++的编译器下int类型4个字节;而tuborC下则是2个字节。下面给出不同位数...
  • 指针类型占字节和地址总线宽度有关系,8位机器的话就是1个字节 stm32单片机(32位): char 1 short 2 int 4 long 4 float 4 double 8 指针类型占字节和地址总线宽度有关系,32位机器的话就是4个字节 .....
  • 数据类型占字节

    千次阅读 2018-07-19 10:07:43
    不同的数据类型占字节数不同。在32位处理器和64位处理器下数据类型占字节数是一样的,不同的是指针类型。 一、32位处理器: char:1个字节 char*p:4个字节 int:4个字节 unsigned int:4个字节 double:8...
  • int 类型究竟多少字节

    万次阅读 2016-12-17 17:28:40
    今天发现NEON技术中 int类型字节数是2,感觉很奇怪,最早写51单片机时也是2,后来到了观念转变成了4,现在有遇到了2. 一、转自 http://www.tuicool.com/articles/6j2uqi2  最近在看深入理解计算机系统这...
  • C语言数据类型占字节

    千次阅读 2016-06-21 16:09:24
    C语言数据类型占字节数: (1)16位编译器: char :1个字节 unsigned char :1个字节 char*(即指针变量):2个字节 short : 2个字节 unsigned short : 2个字节 int: 2个字节 unsigned int : 2个字节 long: 4个...
  • Java中int数据占几个字节

    千次阅读 2019-09-20 09:12:58
    java有八种基本类型: byte(8)二进制 short(16) long(64) int(32) float(32) double(64) char(16) boolean(1) ...
  • 整型数据究竟占多少字节

    万次阅读 2018-08-27 08:51:34
    int 和 long 在不同系统下所占字节大小 win32 win64 linux32 linux64 int (Byte) 4 4 4 4 long (Byte) 4 4 4 8 归根到底是跟机器平台有关,因为是编译器去适应平台 数据模型(I:...
  • int型变量占多少字节?

    千次阅读 2019-01-08 00:02:30
    int型变量有时候4个字节(在Win32),有时候2个字节(在DOS) 这个int类型的大小到底是跟编译器有关,还是跟CPU有关,还是跟操作系统有关? 所谓的16位32位64位系统是由cpu决定的,由机器指令的寻址、寄存器...
  • 1、不同系统下数据类型字节大小 32位系统和64位系统的区别在于long 和指针 其中,彩色部分代表的意思是该类型在三种平台下所占字节大小不同,黑色说明所占字节数相同! 2、32位系统下各个数据类型的取值范围 ....
  • int、char、long各占多少字节数?

    千次阅读 2019-04-28 10:18:06
    int、char、long各占多少字节数: 1、int 4个字节,32位,取值范围:-2的31次方到2的31次方-1 2、char 2个字节,16位,取值范围:【0~65535】 65535是系统最大端口数 3、long 8个字节,64位,取值范围:-2的63次方到2...
  • int类型究竟几个字节

    万次阅读 多人点赞 2018-08-06 15:28:52
    最近在看深入理解计算机系统这本书,上面提到了在32位机器和64机器中int类型都占用4个字节。后来,查了The C Programming language这本书,里面有一句话是这样的:Each compiler is free to choose appropriate ...
  • C、C++数据类型占字节

    万次阅读 2014-07-23 17:40:01
    C标准中并没有具体给出规定那个基本类型应该是多少字节数,具体与机器、OS、编译器有关,比如同样是在32bits的操作系统系,VC++的编译器下int类型4个字节;而tuborC下则是2个字节。 所以int,long int,...
  • 数据类型 16位平台 32位平台 64位平台 char 1(个字节) 1 1 short 2 2 2 ...
  • 数据类型大小区别: 32位系统: char: 1个字节 char*(也就是指针变量)4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器) short int :2个字节 int: 4个字节 unsigned int:4个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 619,749
精华内容 247,899
关键字:

int数据类型占多少字节