负数的二进制表示与转换
来源:互联网 发布:centos 复制文件 编辑:程序博客网 时间:2024/05/17 01:25
1.负数的二进制表示方法
在计算机中,负数以其正值的补码形式表达。
什么叫补码呢?这得从原码,反码说起。
原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。
比如 00000000 00000000 00000000 00000101 是 5的 原码。
反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。
取反操作指:原为1,得0;原为0,得1。(1变0; 0变1)
比如:将00000000 00000000 00000000 00000101每一位取反,得11111111 11111111 11111111 11111010。
称:11111111 11111111 11111111 11111010 是 00000000 00000000 00000000 00000101 的反码。
反码是相互的,所以也可称:
11111111 11111111 11111111 11111010 和 00000000 00000000 00000000 00000101 互为反码。
补码:反码加1称为补码。
也就是说,要得到一个数的补码,先得到反码,然后将反码加上1,所得数称为补码。
比如:00000000 00000000 00000000 00000101 的反码是:11111111 11111111 11111111 11111010。
那么,补码为:
11111111 11111111 11111111 11111010 + 1 = 11111111 11111111 11111111 11111011
所以,-5 在计算机中表达为:11111111 11111111 11111111 11111011。
2.二进制转化为整数
1.如果符号位为0,表示为正,直接将二进制数据翻译即可
2.如果符号位为1,表示为负,将数据-1取反.或者(取反+1)
如:
方法1:
源码: 11111111111111111111111111001110
-1: 11111111111111111111111111001101
取反: 00000000000000000000000000110010
方法2:
源码: 11111111111111111111111111001110
取反: 00000000000000000000000000110001
+1: 00000000000000000000000000110010
3.为什么使用补码
因为计算机的运算是一个加法器,只能做加法运算。因此,就有了补码和移位来运算其他的运算。
参考文章:
http://junsky.iteye.com/blog/667373
- 负数的二进制表示与转换
- 负数的二进制表示
- 负数的二进制表示
- 负数的二进制表示
- 负数的二进制表示
- 负数的二进制表示
- 负数的二进制表示
- 负数的二进制表示
- 负数的二进制表示
- 负数的二进制表示
- Java中的负数的在计算机中的二进制表示,以及与十进制的相互转换
- 负数的二进制表示及有符号数与无符号数之间的转换
- 看C语言编码转换--------负数的二进制表示方法
- 看C语言编码转换----负数的二进制表示方法
- 看C语言编码转换--------负数的二进制表示方法
- 负数的二进制表示方法
- 负数的二进制表示方法
- 负数的二进制表示方法
- C# Winform 中webBrowser显示html内容时禁止错误提示的方法
- 内存对齐2(比较清楚的讲解)——重要
- DEP是数据交换协议的意思
- Windows无损分区
- 关于刷新重复提交问题的解决方案
- 负数的二进制表示与转换
- Qt4之消息对话框
- Ubuntu DNS配置与使用命令设置Ubuntu的ip地址
- linux i18n修改,中文版英文版体现
- java 语言实现二叉树的各种操作
- I/O控制方式
- 深入理解指针函数和函数指针
- 详解VB.NET对象浏览器作用体现
- JS 闭包随笔