随笔- 34  文章- 0  评论- 2  阅读- 72145 

这是一个困扰我许久的问题,总是似懂非懂,负数补码表示比原码多一个,8位为-128 -- 127,32位定点整数范围为-32768 -- 32767,有几个点有点感觉:

1.负数零的原码补码相同10000000按照取反加1得到00000000,按照取模也是得到00000000所以就多了个10000000没有原码可以转换为它。

2.那为什么又将它定位负数最小值?我是这样理解的,01111111(补)的原码01111111(原)是正数最大10000001(补)的原码11111111(原)是负数最小的,和取模的规律一致,所以10000000(补)规定为负数最小或者正数最大比较合理,而最高位为1和负数格式比较一致,所以就规定为了负数最小值了吧吐舌头

 

 posted on   莫扎特的代码  阅读(675)  评论(0编辑  收藏  举报
编辑推荐:
· 继承的思维:从思维模式到架构设计的深度解析
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
阅读排行:
· Cursor预测程序员行业倒计时:CTO应做好50%裁员计划
· 用99元买的服务器搭一套CI/CD系统
· 当职场成战场:降职、阴谋与一场硬碰硬的抗争
· Excel百万数据如何快速导入?
· 抽离BlazorWebview中的.Net与Javascript的互操作库
点击右上角即可分享
微信分享提示