十进制转换成二进制
十进制转换成八进制:
10进制数转换成8进制的方法,和转换为2进制的方法类似,唯一变化:除数由2变成8
被除数
|
计算过程
|
商
|
余数
|
120
|
120/8
|
15
|
0
|
15
|
15/8
|
1
|
7
|
1
|
1/8
|
0
|
1
|
120转换为8进制,结果为:170。
十进制转换成十六进制:
10进制数转换成16进制的方法,和转换为2进制的方法类似,唯一变化:除数由2变成16。
同样是120,转换成16进制则为:
被除数
|
计算过程
|
商
|
余数
|
120
|
120/16
|
7
|
8
|
7
|
7/16
|
0
|
7
|
120转换为16进制,结果为:78。
负数的进制转换稍微有些不同。
先把负数写为其补码形式,然后再根据二进制转换其它进制的方法进行。
负的十进制数转化成八进制数或十六进制数
例如:要求把十进制数(—617)分别用八进制和十六进制数表示。 答案是:(—617)10=(176627)8=(FD97)16
例如:要求把十进制数(—617)分别用八进制和十六进制数表示。 答案是:(—617)10=(176627)8=(FD97)16
解: 先把617用二进制表示为10 0110 1001 (注:通过617除以2取余获得:617/2=308余1
308/2=154余0
154/2=77余0
77/2=38余1
38/2=19余0
19/2=9余1
9/2=4余1
4/2=2余0
2/2=1余0
1/2=0余1
将上面的余数从下面向上逆着取就得到(10 0110 1001 )2二进制数了 题目求的是(—617)10
求原码:(总共16位,第一位为符号位,用1代表负数用0代表正数,从10 0110 100 左起除符号位其他位补0后变成(—617)
原码 : 1000 0010 0110 1001
求反码:除了符号位外,其他的去反 :1111 1101 1001 0110
求补码:负数的补码等于反码+1 :1111 1101 1001 0110 + 1 = 1111 1101 1001 0111
转化成16进制数要求补码从右起,每4位一组,转8进制则 每3位一组,到最左不足3位数则加0补足。
四位补码与相应的进制数相对;二进制1111=1x23+1x22+1x21+1x20=15 对应十六进制的F 依次类推,八进制也一样。
求反码:除了符号位外,其他的去反 :1111 1101 1001 0110
求补码:负数的补码等于反码+1 :1111 1101 1001 0110 + 1 = 1111 1101 1001 0111
转化成16进制数要求补码从右起,每4位一组,转8进制则 每3位一组,到最左不足3位数则加0补足。
四位补码与相应的进制数相对;二进制1111=1x23+1x22+1x21+1x20=15 对应十六进制的F 依次类推,八进制也一样。
1111 1101 1001 0111
F D 9 7 即(FD97)16
F D 9 7 即(FD97)16
001 111 110 110 010 111
1 7 6 6 2 7 即(176627)8