二进制补码
2016-05-15 20:51
274 查看
一、概述
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
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
相关文章推荐
- 补码,反码,原码
- mysql binlog二进制日志详解
- 详解C++编程中对二进制文件的读写操作
- 整理C# 二进制,十进制,十六进制 互转
- c#二进制逆序方法详解
- JS幻想 读取二进制文件第1/2页
- 使用jscript实现二进制读写脚本代码
- C#二进制序列化实例分析
- JavaScript前端开发之实现二进制读写操作
- java中原码、反码与补码的问题分析
- PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
- javascript 二进制运算技巧解析
- 如何判断一个整数的二进制中有多少个1
- MSSQL 将截断字符串或二进制数据问题的解决方法
- 二进制中1的个数
- C++ 十进制转换为二进制的实例代码
- C语言十进制转二进制代码实例
- asp.net实现图片以二进制流输出的两种方法
- C++二进制翻转实例分析
- PowerShell把IP地址转换成二进制的方法