要将-10(十进制)转换为二进制:
将数字的绝对值(| -10 | = 10)重复除以2,直到商数为0:
(10 / 2 = 5 R 0)
(5 / 2 = 2 R 1)
(2 / 2 = 1 R 0)
(1 / 2 = 0 R 1) // zero is the value in the quotient so we stop dividing
Run Code Online (Sandbox Code Playgroud)
放置余数以获得二进制等价物:
1010
Run Code Online (Sandbox Code Playgroud)
对于8位单元,答案是0000 1010,16位单元0000 0000 0000 1010,依此类推.
通过反转位来取一个补码(我们假设一个8位单元格保存最终值):
0000 1010
1111 0101 // bits are inverted
Run Code Online (Sandbox Code Playgroud)
现在通过添加1来取2的补码:
1111 0101
+ 1
----------
1111 0110 // final answer
Run Code Online (Sandbox Code Playgroud)
4位单元会发生什么?
一个补充是:
1010
0101 // inverted bits
Run Code Online (Sandbox Code Playgroud)
取2的补码产生:
0101
+ 1
----
0110 // final answer for a 4-bit cell
Run Code Online (Sandbox Code Playgroud)
由于该数字应为负数且结果不表示(当数字以1开头时,数字从0开始)将发生溢出情况.
| 归档时间: |
|
| 查看次数: |
3855 次 |
| 最近记录: |