C语言编码转换:负数的二进制表示

在计算机中,负数以原码的补码形式表达。

  • 原码表示法规定:用符号位和数值表示带符号数,正数的符号位用“0”表示,负数的符号位用“1”表示。
  • 正数的反码和补码都与原码相同。
  • 负数的反码为对该数的原码除符号位外各位取反。
  • 负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1。

举例:-1为32位机器中int类型的数据

  • 先取-1的原码:10000000 00000000 00000000 00000001
  • 得反码:11111111 11111111 11111111 11111110(除符号位按位取反)
  • 得补码:11111111 11111111 11111111 11111111(反码加1)
原文地址:https://www.cnblogs.com/rookieveteran/p/13839296.html