gir*_*una -1 c binary integer truncation twos-complement
我很难理解从unsigned转换为Two的Complement时截断是如何工作的.有人可以解释一下吗?(我的textook使用将4位值截断为3位值的示例,并说-1变为-1,但-5变为3).
在四个二进制位上表示的-1是:
1 1 1 1
Run Code Online (Sandbox Code Playgroud)
(-1总是表示为2的补码中的所有位1).
在您的教科书中,"截断"仅用于表示(*)"切断最高位":
1 1 1
Run Code Online (Sandbox Code Playgroud)
结果仍然具有其所有位集,因此它仍然表示-1 - 这次,3位2的补码版本为-1.
-5表示为4位的2的补码:
1 0 1 1
Run Code Online (Sandbox Code Playgroud)
砍掉最高位:
0 1 1
Run Code Online (Sandbox Code Playgroud)
我们留下3位表示3.我们不能再得到-5的原因是-5的幅度太大而不适合3位格式.
当高阶位被截断时,具有较小幅度的数字(可以用3位表示)不变.数字从-4到3就是这种情况.
(*)注意,通常"截断"意味着保留最高有效位并去除最低有效位,特别是在浮点的情况下,当通过"截断"转换为整数时,权重小于1的位被擦除.在OP的书中选择单词是非常值得怀疑的,除非该书不是英文的,并且在翻译时单词不能完全映射到英语.
| 归档时间: |
|
| 查看次数: |
3817 次 |
| 最近记录: |