鱼C论坛

 找回密码
 立即注册
查看: 3656|回复: 1

[技术交流] 二进制,八进制,十进制,十六进制,之间的转换。

[复制链接]
发表于 2016-1-3 18:44:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 loo 于 2016-1-3 19:03 编辑

首先我们要知道 各进制之间是以什么形态存在的,怎么区分。

先来说说二进制:它是以“0”和”1“组成的,也是计算机能够理解的语言,因为计算机只知道0和1。它不能理解2345AB之类的。无论是什么语言,最终都是以计算机底层语言存在的也就是0和1。也就是说 0 = 0 ,1 = 1, 2 = 10, 3 = 11 ,4 = 100, 5 = 101, 6 = 110 , 7 = 111, 以此类推。

然后是八进制:八进制它是以前缀0(零)开头的 后面的都是数字  , 例如: 0123,017777,0356 等等。

再然后是十进制:十进制它是以数字开头的,当然 “0” 除外。 例如: 1738,2563.123 等等。

最后是十六进制:十六进制它是以  (零)0x 或者(零) 0X ,X不分大小写,十六进制有十六位 ,分别为  0 ~9    10~15  (在这里强调) 在十六进制中 10 ~ 15  不是用数字表示的 是以  A  ~  F ,或者 a  ~  f 不区分大小写。也就是说  a = 10  , b = 11 ,  c = 12,  d = 13,
e  = 14 ,  f   =  15。  
      
                                                  注:无论是什么进制前缀只是区分,所以不在运算的范围内。

                                                                          以上就是各进制的形态和如何 区分了。

                                                                    先来说说十进制是如何转换成二进制的
                             
                                                               假设一个十进制数为62。
           
                         十进制转二进制 就是一个不断÷2 然后每÷一次就计算它余数一次的过程,直到 被÷数为零为止,

                                                     除2  被÷数   余数
                                                          2 /  62       0
                                                          2 /  31       1
                                                          2 /  15       1
                                                          2 /   7        1
                                                          2 /   3        1
                                                                 1        
                              
好 到了3 ÷2等于1余1 一已经不能再除了  结果 自下而上 为 111110  就是 十进制62 转换为二进制的形态了。


                                                                               二进制转十进制
                                    假设一个二进制数为11010
  
从后到前依次取它们权值        0 * 2的零次方=0  
                                              1 * 2的一次方=2   
                                              0 * 2的二次方=0
                                              1 * 2的三次方=8
                                              1 * 2的四次方=16
      然后把它们所得数全部相加  16+8+0+2+0=26      结果为26  也可以这样加 16+8+2=26。26就是二进制11010转十进制的形态了。

注:有多少个 数就乘多少次方。

            
                                                                                                                              
                                                                                 十进制转八进制
                                                     和十进制转二进制差不多 只是把÷2改为÷8,但不同于二进制只能余1或者0。

                                                 假设一个十进制数为 312
                                                
                                                            8 /  312     0
                                                            8 /   39      7
                                                                     4                                                                          
                                                
                      结果为0470   也就是,十进制312转 八进制的形态了


                                                                                  八进制转十进制
                                                                    
                                                     假设一个八进制数为05642

                                                                      2 * 8的零次方=2
                                                                      4 * 8的一次方=32
                                                                      6 * 8的二次方=384
                                                                      5 * 8的三次方=2560
                                                   
                                                 然后把它们所得数全部相加 2560+384+32+2=2978
         
                                                          2978就是八进制05642转的十进制形态了。                                          

                                                                        
                                                                                     十进制转十六进制
   
                                                                  假设一个十进制数为  21206

                                                                                     16 /  21206    6
                                                                                     16 /    1325    d   
                                                                                     16 /      82      2
                                                                                                  5
                                                   结果为:52d6  也就算是十进制21206转为十六进制的形态了 0x52d6

   
                                                                                     十六进制转十进制
                                                                       假设一个十六进制数为0xfed3
                                                                              
                                                                                    3 * 16的零次方=3
                                                                                    d * 16的一次方=208
                                                                                    e * 16的二次方=3584
                                                                                    f  * 16的三次方=61440

                                                            将所得数全部相加:61440+3584+208+3= 65235。   


                                                                                       二进制转八进制
                                                                       假设一个二进制数为   10111011

                            首先将10111011从右到左, 每三位一组 ,缺位用0填补,然后按二进制转十进制的方法进行转换
                                                                                       011    111     010  
                                                                                                                              
                                                    011                                        111                                         010
                                          1 * 2的零次方=1                        1 * 2的零次方=1                  0 * 2的零次方=0
                                          1 * 2的一次方=2                        1 * 2的一次方=2                  1 * 2的一次方=2
                                          0 * 2的二次方=0                        1 * 2的二次方=4                  0 * 2的二次方=0
                                                 相加=3                                       相加=7                               相加=2
               
                                                      然后按二进制数10111011从右到左每三位为一组缺位用0填补,排列为竖排
                                                                                    
                                                                                            011 =3
                                                                                            111 =7
                                                                                            010 =2
                                                                        按自下而上的排列结果为 :273  
                                                               0273就是二进制10111011的八进制形态了  


                                                                                          八进制转二进制
     
                                                                                假设一个八进制数为0543     
                                                      从后往前每位按十进制数转换为三位二进制数缺位用0填补
                                                                                                                                                         
                                                                                                3 = 011
                                                                                                4 = 100
                                                                                                5 = 101
                                                                        结果自下而上为:101100011   


                                                                                         二进制转十六进制
     
                                                                                  假设一个进制数为10100111
                                                      我们只需要记住它的权值就可以很快算出它的十六进制数了  
                                                      从右到左依次算出他们的权值 从高位到底位 为 8 4 2 1
                                                                 以下填写0就写0 , 其它位按8 4 2 1 规律写  
                                                                               1010    0111
                                                                               8020    0421
                                                                               相加     相加
                                                                                10          7
                                                                                 a           7
                                                                                   
                                                              结果为a7也就是10100111的十六进制的形态了(0xa7)


                                                                                     十六进制转二进制

                                                                           假设一个十六进制数为0xea8b
                                                                                  我们先求它们的权值。
                                                                              然后按8 4 2 1 规律写0也写0
                                                                e                     a                     8                      b   
                                                           8 4 2 0             8 0 2 0            8 0 0 0              8 0 2 1      
                                                           1 1 1 0             1 0 1 0            1 0 0 0              1 0 1 1
                                               
                                         结果为:1110101010001011   也就是十六进制0xea8b在二进制中的形态了
                                                                       
                                          本文到此为止 希望对各位想学的同学们有帮助,如有不符还望拍砖。
                        
                                                                                                                          谢谢大家      
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-12 21:55:43 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-12 09:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表