标签:二进制补码
一、概述
1.计算机系统的内部以二进制形式存储数据。
2.在Java程序中输入的十进制的数据都会被自动转换为二进制,Java内部也是以二进制来进行数值运算,但返回的结果是十进制。
二、补码规则
1.在计算机系统中,数值一律用二进制的补码来存储
2.二进制的最高位是符号位,0表示正数,1表示负数
3.正数的值是其本身,负数的值是最高位(符号位)不变,其它位逐位取反加一
4.两数相加,若最高位(符号位)有进位,则进位被舍弃。
三、为什么使用补码
1.可以将符号位和其他位统一处理
2.最高位不再表示数值,而是作为符号位,正好将数值折半,即一半是0~正数,一半是负数。
3.减法也可按加法来处理
四、补码运算的特征
1.计算机中正数和负数的关系是取反加一(符号位也取反,这里要和上面负数求值区分)
2.补码运算是封闭的:运算结果保留在补码范围之内,超范围就溢出。
3.四位二进制补码最多能表示2^4(16)个数,数的范围是-8~7
4.八位二进制补码最多能表示2^8(256)个数,数的范围是-128~127
5.十六位二进制补码最多能表示2^16(65536)个数,数的范围是-32768~32767
6.三十二位二进制补码最多能表示2^32个数,数的范围是-2^31~2^31-1
五、补码运算的原理
整数 + 负数 = 模
负数 = 模 - 正数,这就是逐位取反加一的原因
模:某种类型数据的总数
4位二进制数的模是2^4=16
8位二进制数的模是2^8=256
16位二进制数的模是2^16=65536
32位二进制数的模是2^32
标签:二进制补码
原文地址:http://11317783.blog.51cto.com/11307783/1773719