C笔记(四)——整型数据

整型变量的分类

一、int整数类型

1.1 int常量、变量

    int表示的是4个字节,32位的二进制整数,在内存中占据4个字节的空间。取值范围在-2^31~(2^31)-1

1.2 printf输出int值

    %d:输出一个有符号的10进制整数;

    %u:输出一个无符号的10进制整数;

注:待输出数是正数时,结果与其他结果相同。待输出数是负数时,%u会把负数的补码二进制符号位当成普通的数来计算输出。

1.3 printf输出八进制和十六进制

     %x:输出一个有符号的十六进制整数,eg:ffff ffe8;

    %X:输出一个有符号的十六进制整数,其进制变为大写eg:FFFF FFE8;

    %o:输出一个有符号的八进制整数

二、short 短整型

    short:表示短整数,在32位系统下是2个字节,16个bit。

三、长整型 long

    在32位系统下,long是4个字节的,在64位系统下,不论是windows还是unix都是4个字节

    long long不管在什么系统下都是64位的,也就是8个字节大小的整数。对于32位操作系统,CPU寄存器是32位,所以计算long long类型的数据,效率很低(故不常用)

     signed:表示"有符号"类型。其取值范围在0000 0000-0111 1111,即(-127-127之间)

    unsigned:表示"无符号"类型,不存在负数。其取值范围在0000 0000-1111 1111,即(0-255之间)。

    eg:unsigned short f;  //表示无符号的字符类型f。

四、整数溢出

    计算一个整数的时候,最后结果超过该数据类型能够容纳的最大范围后,整数会溢出,溢出的结果是高位舍弃。

  eg:
    unsigned short i = 0xffff;
    i = i + 1; 
    printf("%d\n",i);
    其结果为 0。

    注:当一个小的整数数据类型赋值给一个大的整型数据类型时,不用担心符号位的变化。而一个大的整型数据类型给小的数据类型赋值时要考虑溢出问题。




猜你喜欢

转载自blog.csdn.net/qq_37764129/article/details/79758583