补码--为什么结果是-100.docVIP

  • 3
  • 0
  • 约1.83千字
  • 约 5页
  • 2017-06-13 发布于广东
  • 举报
补码--为什么结果是-100

为什么是-100? 下面这段程序,打印b3这个变量出来,是-100.为什么? byte b1 = 67; byte b2 = 89; byte b3 = (byte)(b1+b2) …… 要想明白这个问题,首先要搞明白什么是原码,反码,补码。 什么是原码 在计算机中,二进制有三种表示法:原码、反码、补码。 Java语言二进制数采用补码形式 原码:符号位在最高位,“0”表示正,“1”表示负,其数值部分用二进制形式表示。 10进制 2进制 原码 +50 +0110010 -50 -0110010 +127 +1111111 -127 -1111111 什么是反码 反码:正数的反码是原码本身,负数的反码为该数原码除符号位外各位求反 一个数的反码的反码是原码本身。 10进制 2进制 反码 +50 +0110010 -50 -0110010 +127 +1111111 -127 -1111111 1000000 什么是补码 补码:正数的补码是原码本身,负数的补码是该数的反码的最后一位加1。 ·一个数的补码的补码还是原码本身。 10进制 2进制 补码 +50 +0110010 -50 -0110010 11001110

文档评论(0)

1亿VIP精品文档

相关文档