
内容导航:
- 前言
- 1、原码
- 2、反码
- 3、补码
前言
原码、反码和补码是计算机存储一个具体数字的二进制编码方式。
Java编程语言中,正数都采用原码存储,负数采用补码存储。
1、原码
原码就是符号位加上值的绝对值, 即用第一位表示符号, 其余位表示值。如果是采用8位二进制,那么+1
和-1
的原码就表示为:
+1原码 = 0000 0001
-1原码 = 1000 0001
所以8位二进制数的取值范围就是-127
到+127
,其原码如下:
+127原码 = 0111 1111
-127原码 = 1111 1111
2、反码
反码的表示法为:
-
正数的反码是其原码
-
负数的反码是在其原码的基础上,符号位不变,其余各位都取反。
那么+1
和-1
的反码就表示为:
+1原码 = 0000 0001
+1反码 = 0000 0001
-1原码 = 1000 0001
-1反码 = 1111 1110
由此可见,如果用反码表示负数,要将其转换成原码再计算。
3、补码
补码的表示法为:
-
正数的补码是其原码
-
负数的补码是在其原码的基础上,符号位不变,其余各位都取反,最后加1, 即在反码的基础上加1。
那么+1
和-1
的补码就表示为:
+1原码 = 0000 0001
+1反码 = 0000 0001
+1补码 = 0000 0001
-1原码 = 1000 0001
-1反码 = 1111 1110
-1补码 = 1111 1111
由此可见,如果用补码表示负数,要将其转换成原码再计算。
持续更新,欢迎留言提议!
码字很累,多点赞多赞赏!

网友评论