C语言编码转换:负数的二进制表示
在计算机中,负数以原码的补码形式表达。
- 原码表示法规定:用符号位和数值表示带符号数,正数的符号位用“0”表示,负数的符号位用“1”表示。
- 正数的反码和补码都与原码相同。
- 负数的反码为对该数的原码除符号位外各位取反。
- 负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1。
举例:-1为32位机器中int类型的数据
- 先取-1的原码:10000000 00000000 00000000 00000001
- 得反码:11111111 11111111 11111111 11111110(除符号位按位取反)
- 得补码:11111111 11111111 11111111 11111111(反码加1)