C语言之数据类型①——整数类型

C语言的变量类型:

C语言之数据类型①——整数类型

 1.整数类型的宽度

  • char——8BIT,1字节,0~0xFF
  • short——16BIT,2字节,0~0xFFFF
  • int——32BIT,4字节,0~0xFFFFFFFF
  • long——32BIT,4字节,0~0xFFFFFFFF

如:

char x=1;   存储的值是:0000 0001

char y=-1; 存储的值是:1111 1111

注意:int在16计算机中与short宽度一样,在32以上的计算机中与long一样

2.存储格式:

原码,补码,反码

3.数据溢出

数据溢出,是把高位舍弃还是低位舍弃?

实验:

C代码:

C语言之数据类型①——整数类型

   运行转反汇编:

C语言之数据类型①——整数类型

因此:是舍弃高位

4.有符号数(signed)与无符号数(unsigned)

如定义一个有符号数:

signed char x=1;

 x的宽度为: 0000 0000 ,由于最高位是符号位,所以当存储正数时x存储范围是0-127;当存储的值是负数时,存储的范围就是-128--1

反之如果是unsigned char;正数存储的是0-255;且没有负数的情况

对于计算机来说,有符号数与无符号数存储时是没有什么区别的,如int  x=-1;存储到内存就是0xFFFFFFFF,而有无符号的区别主要体现在使用者。

相关推荐