导航

底层二进制的计算

Posted on 2019-03-14 22:49  菜花教授  阅读(151)  评论(0编辑  收藏  举报

计算机中只能存在二进制,  所以计算需要使用二进制的补码进行计算

 

原码,反码,补码

整数: 原码 = 反码 = 补码

负数: 第一位是符号位1

反码 = 原码取反

补码 = 反码+1

计算机只能做加法, 所以需要用到补码来加负数, 乘除法使用左移和右移<<>>来实现

 

例如: 12 - 15 = ?

可以看做是 12 + (-15)

12 = 0000 1100(原码, 反码, 补码)

-15 = 1000 1111(原码)

      = 1111 0000(反码)

      = 1111 0001(补码)

然后将两个二进制数的补码进行相加:

0000 1100 + 1111 0001 = 1111 1101(补码)

将获得的补码转换为原码进行显示:

1000 0011(原码)  = -3(符号位1表示负数)