十进制转换成八进制和十六进制

来源:互联网 发布:yahoo拍卖日本淘宝代拍 编辑:程序博客网 时间:2024/04/29 16:29

十进制转换成二进制



十进制转换成八进制:

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用二进制表示为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  0111 
          F        D        9       7        即(FD97)16     
001   111   110   110    010   111       
  1        7       6       6       2       7     即(176627)8       


0 0