您的位置:首页
负数的二进制表示
2016-06-11 16:59
204 查看
在二进制中,用最高位来表示整数和负数。
比如
会输出
![](https://images2015.cnblogs.com/blog/833851/201606/833851-20160611164504230-1120070317.png)
整数前面的0被省略了。
或者这样
输出
![](https://images2015.cnblogs.com/blog/833851/201606/833851-20160611164622605-851459101.png)
显而易见,最大值前面省略了一个0。
应该是
01111111111111111111111111111111
这也解释了我一直以来的困惑。
所以,最高位如果是0则表示正数,如果为1则表示为负数。
在计算机中,负数以其正值的补码形式表达。
比如
输出
![](https://images2015.cnblogs.com/blog/833851/201606/833851-20160611165405199-1870715396.png)
我们取后八位,好显示
00100001(33)
11011111(-33)
正数变为负数的过程为1.取反,2.加1
①取反
00100001 取反为
11011110
②加1
11011110加1后为
11011111
所以-33的二进制表示为
11011111
表达的什么玩意啊。。。
参见:http://www.cnblogs.com/junsky/archive/2009/08/06/1540727.html
比如
System.out.println(Integer.toBinaryString(1)); System.out.println(Integer.toBinaryString(-1));
会输出
![](https://images2015.cnblogs.com/blog/833851/201606/833851-20160611164504230-1120070317.png)
整数前面的0被省略了。
或者这样
public void test(){ System.out.println(Integer.toBinaryString(Integer.MAX_VALUE)); System.out.println(Integer.toBinaryString(-1)); }
输出
![](https://images2015.cnblogs.com/blog/833851/201606/833851-20160611164622605-851459101.png)
显而易见,最大值前面省略了一个0。
应该是
01111111111111111111111111111111
这也解释了我一直以来的困惑。
所以,最高位如果是0则表示正数,如果为1则表示为负数。
在计算机中,负数以其正值的补码形式表达。
比如
System.out.println(Integer.toBinaryString(33)); System.out.println(Integer.toBinaryString(-33));
输出
![](https://images2015.cnblogs.com/blog/833851/201606/833851-20160611165405199-1870715396.png)
我们取后八位,好显示
00100001(33)
11011111(-33)
正数变为负数的过程为1.取反,2.加1
①取反
00100001 取反为
11011110
②加1
11011110加1后为
11011111
所以-33的二进制表示为
11011111
表达的什么玩意啊。。。
参见:http://www.cnblogs.com/junsky/archive/2009/08/06/1540727.html
相关文章推荐
- JavaWeb学习笔记之SSM三大框架整合详细教程
- 二十种实战调优MySQL性能优化的经验
- Blob和SyncedMemory代码阅读
- RSA算法应用
- NFC
- Linux中的eval的用法
- Android开发之merge结合include优化布局
- 读《那些年啊,那些事——一个程序员的奋斗史》有感
- WordPress按钮秒支付插件发布,支持微信支付,支付宝,银联,京东,苏宁,易宝支付
- 应用moment.js辅助计算工作时间
- 在Android中使用SharedPreferences存储数据以实现数据共享
- 【bzoj3162】独钓寒江雪
- 【一天一道LeetCode】#88. Merge Sorted Array
- 【一天一道LeetCode】#88. Merge Sorted Array
- Mac环境下eclipse在使用junit的空指针问题
- Redis作者谈Redis比较适合的应用场景
- Node.js服务器端编程实践(一):服务器创建与hello world应答
- 计蒜之道第四场第一题:淘宝流量分配
- web应用中的路径问题
- strstr() strpos() 获取db报错,判断报错中是否包含字符串,判断错误类型