- 计算机系统的内部以二进制形式存储数据。
- 在Java程序中输入的十进制的数据都会被自动转换为二进制,Java内部也以二进制来进行数值运算,但返回的结果是十进制。
补码规则
- 在计算机系统中,数值一律用二进制的补码来存储。
- 二进制的最高位是符号位,0表示正数,1表示负数。
- 正数的值是其本身,负数的值是最高位(符号位)不变,其它位逐位取反,再加1。
- 两数相加,若最高位(符号位)有进位,则进位被舍弃。
例如: 4位二进制补码中,5-3的结果是2
(1101)2 //2是二进制的意思
0010 //逐位取反
0011 // 加1
(1101)2 = -3
补码运算的特征
- 计算机中正数和负数的关系是取反加一。
【示例】在四位二进制数中,已知3的二进制值是0011,若要求-3,则
0011 3
1100 逐位取反
1101 +1 - 补码运算是封闭的: 运算结果保留在补码范围之内, 超范围就溢出。
【示例】四位二进制的补码运算中,请计算5+4的结果。
结果为:-7 - 4位二进制补码最多能表示24=16个数,数的范围是-8~7
- 8位二进制补码最多能表示28=256个数,数的范围是
-128~127
补码运算的原理
“正数+负数=模”。
模:某种类型数据的总数,例如:
4位二进制数的模是24=16
8位二进制数的模是28=256
为什么要使用补码?
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178940.html原文链接:https://javaforall.net
