十进制到二进制数转换

Din*_*esh 3 binary computer-science

什么是-10的二进制形式?如何计算?

Bra*_*don 7

要将-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开始)将发生溢出情况.