徐建岗网络管理 2020-07-28
C语言的变量类型:
如:
char x=1; 存储的值是:0000 0001
char y=-1; 存储的值是:1111 1111
注意:int在16计算机中与short宽度一样,在32以上的计算机中与long一样
数据溢出,是把高位舍弃还是低位舍弃?
实验:
C代码:
运行转反汇编:
因此:是舍弃高位
如定义一个有符号数:
signed char x=1;
x的宽度为: 0000 0000 ,由于最高位是符号位,所以当存储正数时x存储范围是0-127;当存储的值是负数时,存储的范围就是-128--1
反之如果是unsigned char;正数存储的是0-255;且没有负数的情况
对于计算机来说,有符号数与无符号数存储时是没有什么区别的,如int x=-1;存储到内存就是0xFFFFFFFF,而有无符号的区别主要体现在使用者。