这是一个困扰我许久的问题,总是似懂非懂,负数补码表示比原码多一个,8位为-128 -- 127,32位定点整数范围为-32768 -- 32767,有几个点有点感觉:
1.负数零的原码补码相同10000000按照取反加1得到00000000,按照取模也是得到00000000所以就多了个10000000没有原码可以转换为它。
2.那为什么又将它定位负数最小值?我是这样理解的,01111111(补)的原码01111111(原)是正数最大10000001(补)的原码11111111(原)是负数最小的,和取模的规律一致,所以10000000(补)规定为负数最小或者正数最大比较合理,而最高位为1和负数格式比较一致,所以就规定为了负数最小值了吧。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 继承的思维:从思维模式到架构设计的深度解析
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· Cursor预测程序员行业倒计时:CTO应做好50%裁员计划
· 用99元买的服务器搭一套CI/CD系统
· 当职场成战场:降职、阴谋与一场硬碰硬的抗争
· Excel百万数据如何快速导入?
· 抽离BlazorWebview中的.Net与Javascript的互操作库