一.整形的存储
整形家族
1.char
unsigned char
signed char
2.short
unsigned short
signed short
3.int
unsigned int
signed int
4.long
unsigned long
signed long
原码和反码与补码
在计算机中整数是有三种二进制表示方法的即原码、反码、补码。
这三种表示方式的二进制码都是由符号位与数值位组成
符号位为0代表正数,符号位为1代表负数
正整数的原码、反码、补码相同与之相反的负整数的原码、反码、补码都是有所差异的
以32位环境下的int为例
如int a=1,1是正整数则它的原码、反码、补码相同
原码:00000000 00000000 00000000 00000001
反码:00000000 00000000 00000000 00000001
补码:00000000 00000000 00000000 00000001
当负数的符号位不变其余按位取反时得到的是它的反码
当反码加一时得到的是它的补码
如int a = -1,1是负整数则它的原码、反码、补码是
原码:10000000 00000000 00000000 00000001
符号位不变其余按位取反得到反码
反码:111111111 111111111 111111111 111111110
反码加一得到补码
补码:11111111 11111111 11111111 11111111
当想把负数的补码转化成原码时只需要用补码-1得到反码,反码在符号位不变的同时按位取反就可以得到原码
补码的作用
整形数据储存时为什么要转