`
kidiaoer
  • 浏览: 822745 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

进制数的转换 总结

阅读更多

十进制数转换成二进制数。

 随便拿出一个十进制数“39”,(假如你今天买书用了39元)先来把这个39转换成2进制数。

                  商     余数                                             步数
39/2=             19       1                                             第一步      
19/2=             9        1   (这里的19是第一步运算结果的商)          第二步
9/2=              4        1   (这里的9是第二步运算结果的商)           第三步
4/2=              2        0   (这里的4是第三步运算结果的商)           第四步
2/2=              1        0   (这里的2是第四步运算结果的商)           第五步
1/2=              0        1   (这里的1是第五步运算结果的商)           第六步

那么十进制数39转换成2进制数就是100111. 既39(10)=100111(2)


解析一:1. 当要求把一个10进制数转换成2进制数的时候,就用那个数一直除以2得到商和余数。
        2. 用上一步运算结果的商在来除以2,再来得到商和余数。
        3. 就这样,一直用上一步的商来除以2,得到商和余数!那么什么时候停止呢?
        4. 请看上述运算图,第六步的运算过程是用1除以2.得到的商是0,余数是1.    那么请你记住,记好了啊共2点。 A: 当运算到商为“0”的时候,就不用运算了。 B:1/2的商为“0”余数为“1”。这个你要死记住,答案并不是0.5! 答案就是商为“0”余数为“1”。你不用去思考为什么,记好了就行了!
        5. 在上述图中你会清晰的看到每一步运算结果的余数,你倒着把它们写下来就是“100111”了。那么这个就是结果了。
        6. 在上述图中符号“/”代表“除以”。





二: 十进制数转换成八进制数。

 随便拿出一个十进制数“358”,(假如你今天买彩票中了358元)。358是我们现实生活中所用10进制表达出来的一个数值,转换成八进制数十多少?


                  商     余数                                             步数
358/8=            44       6                                             第一步      
44/8=             5        4   (这里的44是第一步运算结果的商)          第二步
5/8=              0        5   (这里的5是第二步运算结果的商)           第三步


那么十进制数358转换成8进制数就是546。既358(10)=546(8)

解析二:   1.没什么好说的啦,10进制数转换成2进制数  和  10进制数转换成8进制数 的唯一不一样的地方就是除数变了,除数由“2” 变成了“8”。  其余的都一样。所以解析一,你一定要看明白并记好。
           2.你或许会疑问5/8为什么商为“0” 余数为“5”。因为5不够被8除,那么商就是“0”余数就是“5”  同理1/2商为“0”余数为“1”。不多解释了啊!



三: 十进制数转换成十六进制数。



 随便拿出一个十进制数“120”,(假如你今天捡了120元)。120是我们现实生活中所用10进制表达出来的一个数值,转换成十六进制数十多少?



                  商     余数                                             步数
120/16=            7       8                                             第一步      
7/16=              0       7   (这里的7是第一步运算结果的商)           第二步
@4
那么十进制数120转换成16进制数就是78,既120(10)=78(16)。

解析三:  上同,看明白并记好解析一和解析二就可。






到这里,我想我已经把10进制数转化成2进制数,8进制数,16进制数已经给你讲的很明白了。



在这里你就可以看到,十进制数148转换成2进制8进制16进制所得到数的长度是不是在逐渐缩短。这就是所谓的“进制越大,数的表达长度越短” 。



那么接下来我来给你讲解2进制数,8进制数,16进制数怎样转换成10进制数。


四:2进制数转换成10进制数。

   就拿这个数吧“111101”。


          位置    第5位  第4位 第3位 第2位 第1位 第0位   
          
          数值      1       1       1      1      0      1


111101(2)= 1*2的0次方     + 0*2的1次方 + 1*2的2次方 + 1*2的3次方 + 1*2的4次方 + 1*2的5次方
          = 1*1       + 0*2        + 1*4        + 1*8        + 1*16        +1*32
          = 1         + 0          + 4          + 8          + 16         + 32 
          = 61(10)
@5
既2进制数111101转换成10进制数为“61”




解析一:  1. “2的0次方”其实是一个数学表达式,但我打不出来那种数学的格式,就用纯汉语了。“2”就是基数,“0”就是次方数。 2的0次方,最后的结果是1!记好了啊,任何数的0次方结果都是“1”.说到这里就出来了一个很具争论的问题,那就是0的0次方是等于“1”还是“0”?当然你没必要              去研究了啊。你只要记住2的0次方=“1”, 8的0次方=“1”, 16的0次方=“1”等于“1”就可以了。 

          2. “1*2的0次方”中的1是第0位上的数。  那么为什么要乘以2的0次方呢? 因为它是2进制数,而且这个1处在第0位。
        
          3.“0*2的1次方”中的0是第1位上的数。  那么为什么要乘以2的1次方呢? 因为它是2进制数,而且这个0处在第1位。

          4.“1*2的2次方”中的1是第2位上的数。  那么为什么要乘以2的2次方呢? 因为它是2进制数,而且这个1处在第2位。
        
          5. 后面的2的3次方,2的4次方,2的5次方,就不用我多解释了吧。
  
          6. 将计算出来的数相加,就是这个2进制数转换成10进制数的结果。
 
          7. 还要注意一点,一个2进制数从右边开始的第一个数位是“第0位”而不是“第1位”,要记好了啊。看看我上面给你做的图示。


其实把8进制数,16进制数转换成10进制数,唯一变的地方就是基数变了。我给你分别个例子,你在对照上面的解析四,我相信这些你都会搞明白的。


8进制数转换成10进制数。

224(8)=?(10)

第0位  4*8的0次方     = 4
第1位  2*8的1次方     =16
第2为  2*8的2次方     =128


4+16+128=148
@6
那么224(8)=148(10)




352(8)=?(10)

8进制数352的第0位为“2”,第1位为“5”, 第2位为“3”

第0位  2*8的0次方    =2
第1位  5*8的1次方    =40
第2位  3*8的2次方    =192

2+40=192=234

那么352(8)=234(10)





16进制数转换成10进制数


2AF5(16)=?(10)

16进制数2AF5的第0位为“5”,第1位为“F”, 第2位为“A” 第3位为“2”
第0位    5*16的0次方  =5
第1位    F*16的1次方  =240
第2位    A*16的2次方  =2560
第3位    2*16的3次方  =8192

5+240+2560+8192=10997

那么2AF5(16)=10997(10)


或许你对A和F看不懂吧?没事,往下看。




@7
在2进制中只有2个数字,既1,0
在8进制中只有8个数字,既0,1,2,3,4,5,6,7
在10进制中有10个数字,既0,1,2,3,4,5,6,7,8,9
在16进制中有10个数字和6个字母,既0,1,2,3,4,5,6,7,8,9和A,B,C,D,E,F,
   字母A代表数字10,字母B代表数字11,字母C代表数字12,字母D代表数字13,字母E代表数字14,字母F代表数字15,


那么F*16的1次方  =240和A*16的2次方  =2560 你明白了吧?
2AF5(16)=10997(10)你也该明白了吧。



其实你学习到这里,基本上都应该会10进制,2进制,8进制,16进制之间的相互转换了吧!

你要考虑一个问题,出了一道题,将一个2进制数转化成16进制数!你会做吗?
最笨的办法就是先把2进制数转换成10进制数,在转化成16进制数。
当然有简单的把法。你需要记住一些常用的就好了。那些事常用的,往下看!


二进制数(仅4位的2进制数)        =      十进制数      =    16进制数 
0000            =          0         =        0    
0001            =          1         =        1    
0010            =          2         =        2    
0011            =          3         =        3    
0100            =          4         =        4    
0101            =          5         =        5    
0110            =          6         =        6    
0111            =          7         =        7    
1000            =          8         =        8    
1001            =          9         =        9    
1010            =          10        =        A    
1011            =          11        =        B    
1100            =          12        =        C    
1101            =           13       =        D    
1110            =           14       =        E    
1111            =           15       =        F     




@8

当你能熟练记住这些常用的,那么做2进制数与16进制数相互转换的时候就很轻松了。来给你举个例子看看啊。


111111011010010110011011(这是一个2进制数)
先把它所包含的数字分成4个4个在一块,如下所示:
1111  1101  1010  0101  1001  1011
根据上述常用表可以得到
1111=F
1101=D
1010=A
0101=5
1001=9
1011=B
那么它所对应的16进制数就是“FDA59B”


同理给你一个16进制数,怎么快速转换成2进制呢?

FD(16)=?(2)


呵呵,记住上面的常用数据表,那不是很快就出来了。

FD(16)=1111 1101(2)


   

一: 2进制转换10进制
 
101.101(2)=?(10)
(解析一)
1. 先把2进制数101.101分成整数和小数部分,即101和0.101
   101(2)=5(10)
2. 开始把0.101转换成10进制的。
    小数点后面的“1”,处于负一位,后面的“0”处于负二位,在后面的“3”处于负三位,
   因为是2进制的转换成10进制的,那么0.101=1*2的-1次方+0*2的-2次方+1*2的-3次方=0.5+0+0.125=0.625
3. 将整数部分的和小数部分的相加,5+0.625=5.625   即101.101(2)=5.625(10)
 
4. 数学知识,一个数的负几次方=这个数分之一的负几次方的绝对值次方,即(举例)5的-2次方=(1/5)的2次方
                  一个数的负几分之一次方=根号下的这个数,即(举例)5的-(1/2)次方=根号5.
 
那么8进制,16进制转换10进制,将“1*2的-1次方+0*2的-2次方+1*2的-3次方”里面的乘号后面的“2”分别换成“8”和“16”就好了。其余的都雷同上述。
 
二: 10进制转换2进制
57.75(10) = ?(2)
 
解析二:
 1.  把10进制数分成2部分,即整数部分57和小数部分0.75.  整数部分转换成2进制前面给你讲过了,主要讲小数部分的。
    A: 0.75*2=1.5  取整数部分“1”  B:(1.5-1)*2=1.0 继续取整数部分“1”  c: (1.0-1)*2=0  在取整数部分“0”  到此就停止计算了。
    然后讲取出来的整数部分 按正序排列,即110   即0.75(10)=0.110(2)
2.  讲整数和小数相加,即111001+0.110=111001.110   即57.75(10)=111001.110(2)
3.  就这么简单,切记啊。对于小数部分的一定要正取,整数部分的要逆取。
 
10→2: (57.75)10 = (111001.110)2
   整数部分     57/2   1                        小数部分        0.75*2     1
                   28/2   0                                 (1.5-1)*2  取 1
                   14/2   0                                 (1.0-1)*2  取0
                   7/2    1      
                   3/2    1      
                   1/2    1      
 
10→8: (80.140625)10 = (120.11)8
             80/8   0                   0.140625*8    取  1
             10/8   2                   (1.125-1)*8   取  1
             1/8    1                    (1.0-1)*8    取  0
 
 
10→16: (1032493.13671875)10 = (FC12D.23)16
            1032493/16    13                         0.13671875*16  取 2
            64530/16      2                          (2.1875-2)*16  取  3
            4033/16       1                          (3.0-3)*16     取  0
            252/16        12     
            15/16         15 

什么叫进制?
   现在所存在的进制有10进制,2进制,8进制,16进制。
   我们日常生活中的数学计算采用的是10进制。比如你现在有9元钱,过两天又有了2元钱。总共多少钱?采用我们日常生活所用的10进制,逢十进一,算出的结果就是11元钱。
    计算机它只能认识电路的通导和阻塞,也就是0和1.所以计算机不能采用10进制来计算数据,只能采用2进制来计算数据。逢2进1.
   那么为什么后来有出现了8进制,16进制呢?为什么没有3进制,5进制呢?
   8,16分别是2的3次方,2的4次方。这样来储存数据有利于2进制,8进制,16进制之间的相互转换。所以没有3进制,5进制。
   而且进制越大,这个数所占的字节就越小,计算机要储存数据,所占的字节越少,那么有限的空间它就能储存更多的数据。给你举个例子,你就明白了。
    随便拿出来一个10进制数,148.
    148(10)=10010100(2)
    148(10)=224(8)
    148(10)=94(16)
  看到效果了吧,把它转换成2进制,数位很多。转换成16进制,数位仅仅只有2位!而且有的变成语言要用到8进制,16进制的。就比如C++,C语言。


分享到:
评论

相关推荐

    进制数转换二进制八进制十进制十六进制之间转换方法PPT学习教案.pptx

    * 八进制转换为十六进制:先将八进制数转换为二进制数,再将二进制数转换为十六进制数。 * 十六进制转换为八进制:先将十六进制数转换为二进制数,再将二进制数转换为八进制数。 五、总结复习 进制数之间的转换是...

    将ASCII码十进制数转换为二进制数

    通过上述分析,我们不仅了解了ASCII码、十进制与二进制转换的基本原理,还深入学习了如何使用8086汇编语言实现这一转换过程。汇编语言虽然复杂,但通过这样的实践,我们可以更加直观地理解计算机底层的工作机制,...

    浮点数与十进制数转换工具

    总结起来,浮点数与十进制数的转换是计算机科学中不可或缺的一部分,涉及到数值计算、数据表示和编程实践等多个方面。掌握这些转换方法和注意事项,不仅可以提高编程效率,还能帮助我们更好地理解和解决实际问题。而...

    数字各种进制的转换

    2. **进制转换**:指不同进制数之间进行转换的过程。主要包括两种类型: - **非十进制到十进制的转换**:采用权重法,即根据各个位上的数字乘以其所在位置的权值(进制的幂次方),再相加得到十进制数。 - **十...

    总结进制数转换二进制八进制十进制十六进制之间转换方法PPT学习教案.pptx

    + 二进制转换为十六进制:每四位二进制数组成一组,写出每一组二进制数所对应的十六进制数码 + 十六进制转换为二进制:每一位十六进制数分别用四位二进制数表示 总结 进制数转换是计算机领域中的一项基础知识,...

    将键入的十六进制数转换为对应二进制数并回显

    根据给定文件的信息,我们可以总结出以下详细的IT知识点: ...此程序不仅包含了基本的输入输出功能,还涉及到了数据验证、转换算法等关键步骤,对于学习十六进制与二进制转换具有很好的参考价值。

    进制转换总结.docx

    然后将每组的二进制转换为对应的八进制数。如二进制数10100100转换为八进制为1010 0100,即244。 三、二进制转十六进制 与八进制转换类似,二进制转十六进制也是每四位一组,不足四位的在左边补0。然后将每组的二...

    将一个十六位二进制数转换为十六进制数并在屏幕输出

    ### 十六位二进制数转换为十六进制数并输出 在计算机科学与技术领域,数制转换是一项基础而重要的技能。本篇将基于提供的汇编代码示例,详细解析如何将一个十六位的二进制数转换成十六进制数,并将其输出到屏幕上。...

    十进制整数转换成为16进制以内的任意进制数

    根据给定文件的信息,本文将详细介绍如何实现一个数值转换函数,该函数能够将一个十进制整数转换为16进制以内的任意进制数。我们首先从基础概念出发,然后逐步深入到具体的实现细节。 ### 基础概念 在计算机科学中...

    java_十进制数转换为二进制,八进制,十六进制数的算法

    `chang`函数则专门用于处理十六进制转换中余数为10到15的情况。 ### 示例代码 虽然提供的代码片段包含了一些非Java语法(如C#特有的命名空间和类定义),但核心转换逻辑清晰可见。例如,在`DtoB`函数中,通过循环...

    微机原理实验六二进制数转换为BCD码.pdf

    微机原理实验六二进制数转换为BCD码 微机原理实验六二进制数转换为BCD码是计算机科学领域中的一种常见实验,旨在将二进制数转换为BCD码。本实验的主要目的在于掌握简单的数值转换算法,基本了解数值的各种表达式。 ...

    QT 收到下位机16进制数转换字符串显示

    总结,QT编程中处理下位机的16进制数据主要包括数据接收、解析、转换及显示四个步骤。通过QLineEdit控件,我们可以直观地在界面上呈现这些数据,为用户提供友好的交互体验。理解这些知识点对于任何涉及硬件通信和...

    八进制数和十进制数相互转换

    ### 八进制数与十进制数相互转换——基于汇编语言的实现 #### 实验背景 在学习计算机科学的过程中,理解不同的数值表示方法是非常重要的。本实验旨在通过汇编语言来实现八进制数与十进制数之间的相互转换,加深对...

    十进制数转换为二进制数.txt

    在实际应用中,尤其是在编程中,经常会遇到需要手动或编程实现十进制到二进制转换的情况。在C语言中,可以使用栈(Stack)的数据结构来自动化这一过程,因为栈的后进先出(LIFO)特性正好适用于余数的倒序排列。具体...

    二进制转换成BCD码

    二进制转换成BCD码 本资源是一个将二进制数转换成BCD码的VHDL代码,提供32位转换,可以自行扩展。下面是对该代码的详细解释和知识点总结: 二进制和BCD码 在计算机科学中,二进制是最基本的数制,使用0和1两个...

    顺序栈将一个非负的十进制整数N转换为对应的B进制数。

    ### 顺序栈实现非负十进制数到B进制数的转换 #### 背景与概述 在计算机科学中,数据的表示和转换是非常基础且重要的概念。本篇文章介绍了一个利用顺序栈来实现非负十进制整数转换为其他进制数的程序。该程序使用...

    利用顺序栈将一个非负的十进制整数N转换为对应的B进制数。

    要将一个十进制数N转换为B进制数,可以采用除B取余的方法: 1. 将十进制数N除以目标进制B,并获取余数。 2. 将余数压入栈中。 3. 将N除以B的结果作为新的N继续执行上述操作,直到N为0。 4. 依次弹出栈中的元素即得到...

    十进制和十六进制转换成float、double数据

    无论是进行数值计算还是硬件设计,掌握这些基本的进制转换技巧都将使你的工作更加得心应手。通过熟悉MATLAB的相关函数和硬件描述语言的语法,你可以轻松地在各种进制间进行转换,实现所需的功能。

    多进制数转换器

    5. 如果是字符转换,先将字符转换为其对应的ASCII码,然后再进行进制转换。 这种转换工具在编程、数据通信、硬件设计和故障排查等方面都有广泛的应用。掌握不同进制间的转换和ASCII码的理解,对于IT专业人士来说是...

    栈的应用3——进制转化_栈;进制转换_

    总结来说,栈在进制转换中的应用展示了其在计算过程中的灵活性和效率。通过理解和掌握这一方法,不仅可以加深对栈数据结构的理解,还能提升解决实际问题的能力。对于学习和实践C语言的开发者,这是一个很好的练习...

Global site tag (gtag.js) - Google Analytics