关于该死的原码和补码的关系 以及为什么计算机中使用补码作为运算的码种
2015-01-24 13:23
411 查看
看文章之前,两点提示:第一,不要管反码,以及反码和补码的关系 第二,忘掉符号位,没有符号位这个东西。
在计算机中:
正数的表示方式简单来讲就是原码
具体为二进制 比如7 0000--0111
负数的表示方式就是补码(补码的特征。第一位一定是1)
具体为该数的绝对值的按位取反然后加一 比如-7 第一步,把上面那个二进制数按位取反 1111--1000 第二步+1 1111--1001
那么 已知一个数的补码 怎么知道这个数的十进制数字呢? 首先看到补码那么他就毫无疑问是一个负数 那么同样将这个数全部按位取反然后加一 比如1101--0110 这是一个补码,因为首位是1。 第一步 :0010--1001 第二步:0010--1010 转换为十进制为42 然后补码都是负数 所以为 -42
那么为什么要使用补码来进行计算机的计算呢?
计算机里面大多数都是加法运算器,做的减法操作都是加上一个负数 比如 1-2=1+(-2)
那么这时,如果我们用原码操作0001
+1010
1011
答案是 -3?!
如果是补码呢 0001
+1110
1111
答案是-1
这其中的不同就是一个可以直接把符号位参与进入运算。
在计算机中:
正数的表示方式简单来讲就是原码
具体为二进制 比如7 0000--0111
负数的表示方式就是补码(补码的特征。第一位一定是1)
具体为该数的绝对值的按位取反然后加一 比如-7 第一步,把上面那个二进制数按位取反 1111--1000 第二步+1 1111--1001
那么 已知一个数的补码 怎么知道这个数的十进制数字呢? 首先看到补码那么他就毫无疑问是一个负数 那么同样将这个数全部按位取反然后加一 比如1101--0110 这是一个补码,因为首位是1。 第一步 :0010--1001 第二步:0010--1010 转换为十进制为42 然后补码都是负数 所以为 -42
那么为什么要使用补码来进行计算机的计算呢?
计算机里面大多数都是加法运算器,做的减法操作都是加上一个负数 比如 1-2=1+(-2)
那么这时,如果我们用原码操作0001
+1010
1011
答案是 -3?!
如果是补码呢 0001
+1110
1111
答案是-1
这其中的不同就是一个可以直接把符号位参与进入运算。
相关文章推荐
- 为什么计算机中使用补码来表示与运算
- 你知道为什么计算机中的数据使用补码来表示和运算吗?
- 原码、补数、补码以及计算机中为什么用补码存储
- 你知道为什么计算机中的数据使用补码来表示和运算吗?
- 计算机底层基础----原码、反码、补码以及为什么要用反码和补码
- 为什么计算机中使用补码来表示与运算
- 数据在计算机中的存储形式和运算( 原码,反码,补码)&=, |=, >>=, <<=, ∧=
- 计算机中位运算揭秘——补码、原码
- 计算机为什么选用二进制补码(1)---原码、反码、补码
- 关于原码、反码和补码,想一想为什么
- 关于计算机中 原码, 反码, 补码 详解
- 原码, 反码, 补码 详解以及负数的按位与运算
- 关于计算机中的原码、反码、补码问题总结
- Java 中关于原码,反码,补码的问题及常用的逻辑运算
- 为什么要使用原码、反码、补码和移码
- 计算机中位运算揭秘——补码、原码
- 原码、反码、补码以及为什么要用反码和补码
- 位运算以及原码反码补码的介绍和案例
- 计算机为什么使用补码来存储数据
- 为什么要使用原码、反码、补码