二进制负数用补码表示的原因
来源:互联网 发布:光纤网络布线方案 编辑:程序博客网 时间:2024/05/21 21:41
文章出处:http://blog.csdn.net/zzsfqiuyigui/article/details/5955645#comments
对于计算机或者DSP芯片来说,符号并没有什么特殊的储存方式,其实是和数字一起储存的。为了使得无论是无符号数还是符号数,都可以使用同样的加法减法规则,符号数中的负数用正数的补码表示。
假设CPU的字长是16位。我们都知道-1 + 1 =0,而0x0001表示1,那么-1用什么来表示才能使得-1 + 1 =0呢?答案很简单:0xffff,用16进制计算一下0xffff+0x0001,结果是0x10000。那么0x10000和0x0000等价麽,我们刚才说过用16比特来表达整数,最高位的1是第17位,这一位是溢出位,在运算寄存器中没有储存这一位,所以结果是低16位,也就是0x0000。这就是负数表示方式产生的原因。举个例子:-100。首先我们需要知道100的16进制,用计算器转换一下,可以知道是0x0064,那么-100就是0x10000 - 0x0064,用计算器算一下得0xff9c。还有一种简单的转换符号的方法,就是取反加一:把数x写成二进制格式,每位0变1,1变0,最后把结果加1就是-x了。
- 二进制负数用补码表示的原因
- 二进制负数用补码表示的原因
- 使用二进制补码表示二进制负数方法合理性的证明
- 一个10进制数二进制表示1的个数,负数用补码
- 剑指offer-二进制中1的个数,负数用补码表示
- 用补码表示负数而抛弃原码表示的原因
- 负数的二进制表示
- 负数的二进制表示
- 负数的二进制表示
- 负数的二进制表示
- 负数的二进制表示
- 负数的二进制表示
- 负数的二进制表示
- 负数的二进制表示
- 负数的二进制表示
- 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示
- 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
- Java实现输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
- struts2工作流程(从九个步骤来分析)
- Ext.MessageBox.show 配置
- 解决scrollview嵌套ImageView时,出现除顶部和底部黑块的问题[ 转载]
- IOS 应用响应中断分析
- 网络书签外链发布的注意方法
- 二进制负数用补码表示的原因
- IOS 应用视图交互模型分析
- 书签推广的特点和技巧
- MVC模式与如何实现struts MVC模式
- 外观模式及其改进(三):外观类的单例化
- 数组最长递增子序列(Longest Increasing Sequence)
- Ruby解析XML简单实现
- HTTP协议基础
- 游荡与关注