C语⾔中的int类型
1、在计算机中,⼀切都是⼆进制(0和1)。⼀个字节等于8个⽐特。也就是8个0或1位。
1Byte = 8bit
2、原码、反码、补码:
–正数的补码和反码是其本⾝。
–负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)c语言char的用法
–负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。
也就是:
[+1] = [00000001]原 = [00000001]反 = [00000001]补
[-1] = [10000001]原 = [11111110]反 = [11111111]补
3、字长:
在计算机中,cpu中寄存器与内存中间传输数据的时候每⼀次传输的数据是多少个⽐特就是⼀个字长(通常说这个cpu的寄存器是多少宽)。也就是说cpu从内存中每次取出⼀个字节的数据(其实就是⼀个int),当然这个会根据cpu编译器变化,⽐如64bit。
char 1个字节
int 4个字节(取决于cpu编译器,通常的意义就是1个“字”)
所以会有(c语⾔中char和int都是整数类型):
char m = 255;
int n = 255;
printf(“%d”, m);
printf(“%d”, n);
输出结果:
-1 //11111111
255 //00000000 00000000 00000000 11111111
4、整数越界:
所以会有:
char m = 255;
int n = 255; unsigned a = 255; char b = 127;
b = b + 1;
char c = 255;
c = c + 1;
printf(“%d”, m); printf(“%d”, n); printf(“%d”, a); printf(“%d”, b); printf(“%d”, c);
输出结果:
-1
255
255
-128
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论