`
peihong-ph
  • 浏览: 21010 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

原码、反码与补码

阅读更多
1、在计算机内数据通常以二进制数据参与运算和处理。

2、在计算机内数据的二进制编码数的最高位通常为符号位,
用1表示负号,0表示正号。

3、十进制整数与二进制、八进制和十六进制数之间对应关系

十 二 八 十六
0 000 0 0
1 001 1 1
2 010 2 2
3 011 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 10(A)
11 1011 13 11(B)
12 1100 14 12(C)
13 1101 15 13(D)
14 1110 16 14(E)
15 1111 17 15(F)

4、十进制整数转换成二进制数是如何进行的。
答案: 除以基数取余倒写。
什么是基数?   组成某进制数的个数即为基数
6 ==>>>( 110 )2
5、十进制整数转换成八、十六进制数是如何进行的。
同上。

6、二进制数据如何还原成十进制数据?
答案: 按权展开求和。
什么是权?基数的(n-1)次方(n为该数所在的位数)
(1101)2 ===>>>>(  13  )10

7、八、十六进制数还原成十进制数据?
答案: 同上。

8、八进制数据转换成二进制数是如何进行的?
答案: 八进制数据中的每一位数可用三位二进制数来表示即可。
(15)8 ===>>>( 001 101  )2

9、十六进制数据转换成二进制数是如何进行的?
答案: 十六进制数据中的每一位数可用四位二进制数来表示即可。
(3A6)16 ===>>>( 1110100110 )2

10、二进制转换成八进制数据如何进行?
答案: 从二进制数据的右边往左边每数三位作为一个八进制数即可。
1101011 ===>>>( 153 )8

11、二进制转换成十六进制数据如何进行?
答案: 从二进制数据的右边往左边每数四位作为一个十六进制数即可。
1101011 ===>>>>( 6B )16

12、原码、反码和补码?
原码:
例如: byte b1 = -5; 则其原码:   10000101

反码:
例如: byte b1 = -5; 则其反码:   11111010

补码:
例如: byte b1 = -5; 则其补码:   11111011

注意: 正整数只有原码,没有反码和补码;或者说:
正整数的原码和反码及补码是同一个。

注意: 在计算机中,负数一般情况下通常以补码方式参与运算。

b1 + 1 ===>>>  11111011 + 00000001
   11111100 ===>>>原码
  
13、已知一个数的补码如何求其原码。
答案: 补码的补码就是原码。
例如: 已知某数的补码为:  11111100 ,则其原码是什么?
1) 补码: 11111100 看成原码
2) 求反码: 10000011
3) 求补码: 10000100  就是答案: -4
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics