`
wbj0110
  • 浏览: 1599212 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

进制转换原理分析

    博客分类:
  • math
阅读更多

我们最熟悉的进制就是从小就学的十进制,“逢十进一”如:

然而在计算机CPU操作都是二进制数据0或1,这样就需要我们进行进制的的转换,这里的二进制就是,“逢二进一”如:

八进制为,“逢八进一”如:

十六进制为,“逢十六进一”如:

进制转换原理

 

进制转换分:整数部分和小数部分

1,整数间十进制转其他格式:

十进制整数转换为(R)进制整数采用"除R取余,逆序排列"法。具体做法是:用R去除十进制整数,可以得到一个商和余数;再用R去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为R进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来,如10转2:

考虑到一个字节是8个二进制位,所以我们在"最高位"也就是"第7位"上补0,形成如下最终答案:

再看二进制加法的过程,注意:逢二进一!

那么,二进制的10110011表示为十进制,应该是多少呢?计算过程如下:

2,小数部分十进制转其他格式:

十进制小数转换成(R)进制小数采用"乘R取整,顺序排列"法。具体做法是:用R乘十进制小数,可以得到积,将积的整数部分取出,再用R乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的整数部分为零,或者整数部分为1。或者达到所要求的精度为止。

 

  然后把取出的整数部分按顺序排列起来,先取的整数作为R进制小数的高位有效位,后取的整数作为低位有效位。

0.625 * 2         1

0.25 * 2            0

0.5 * 2              1

值为0.101

0.3 * 2              0

0.6 * 2              1

0.2 * 2              0

0.4 * 2              0

0.8 * 2              1

0.6 * 2              1 

值为:0.010011(取小数点前6位)

八进制和十六进制

无论是八进制或是十六进制,都不是电脑所能"理解"的。那为什么需要这两种进制呢?原因是,八进制和十六进制能够有效地提高二进制计算的效率。换句话说,八进制或十六进制能够很方便地和二进制进行相互转换。

先来说说八进制:

八进制"逢8进一"。注意到:3个二进制位正好能表达1个八进制位的信息。1个八进制位有共8种状态,对应的3个二进制位是 所以,八进制和二进制的转换方式是十分简单的:3个二进制位转换成对应的1个八进制位。

举例来说,二进制到八进制的转换如下图所示:

其中,每3位二进制数转换为1位八进制数。注意到上图二进制数中,最左侧的0是我们手动补上去的,为的是凑足3个数进行转换。同理,我们有下图:

把2个八进制数相加:

按权展开,验算一下:

这与十进制数计算的答案是相符的。说明我们的八进制运算是正确的。

八进制转为二进制,得到二进制的答案:

由上运算过程可见,八进制的表示法,比二进制的表示法来得方便。

 

再来看看十六进制:

这和八进制的形式很相似。只不过:

十六进制"逢16进一"。1个十六进制位对应的数值表示是:0~9,A,B,C,D,E,F;其中,A,B,C,D,E,F分别对应十进制的10,11,12,13,14,15。我们注意到:4个二进制位正好能表达1个十六进制位的信息。1个十六进制位有共16种状态,对应的4个二进制位是 所以,十六进制和二进制的转换方式是十分简单的:4个二进制位转换成对应的1个十六进制位。

以上题为例,我们再用十六进制做个转换计算的例子:

 

另一个数:

二者相加:

按权展开,得到:

同样地,我们也可以很方便地把上述十六进制的值再转为二进制的表达形式:(1位十六进制扩展为4位二进制)

分享到:
评论

相关推荐

    进制转换C源码

    本文将基于标题“进制转换C源码”和描述,深入探讨C语言实现不同进制转换的原理及代码实现,同时会涉及与Java语言进制转换差异的讨论。 首先,进制转换是计算机科学中的基本概念,主要包括二进制、八进制、十进制和...

    PHP中实现中文字符进制转换原理分析

    中文字符编码研究系列第四期,PHP实现中文字符进制转换原理分析,主要讨论中文汉字转换为十进制和十六进制的方法,并掌握转换原理应用于实际开发。本文以GBK编码字符为例,讨论GBK编码的字符转换原理

    易语言JS任意进制转换

    总之,易语言JS任意进制转换涉及了基本的计算逻辑和进制转换原理,对于初学者和有一定经验的开发者来说,都是很好的学习和实践素材。通过深入学习和实践,不仅可以掌握进制转换,还能提高易语言的编程能力,为未来的...

    易语言进制转换例程

    通过分析和学习这些源码,开发者不仅可以掌握易语言的基本语法,还能深入了解进制转换的算法和实现细节,这对于提升编程技能和理解计算机底层工作原理非常有帮助。在实际应用中,这样的转换例程可以用于数据编码、...

    用c++实现进制转换(栈的应用)

    #### 进制转换原理 进制转换的基本原理是通过不断地除以目标进制数,并记录下每次除法的余数,直至商为零。这些余数即为目标进制数的每一位数字,但由于它们是倒序生成的,因此需要一个数据结构来暂存并反转顺序,...

    进制间的转换二进制与十进制转换流程图解

    进制转换是计算机科学的基础,理解不同进制之间的转换对于学习和使用计算机系统至关重要。这里主要探讨的是二进制和十进制之间的...无论是学习计算机硬件、软件开发还是数据分析,掌握进制转换都是基础且重要的技能。

    计算机中进制及进制转换PPT课件.pptx

    了解进制和进制转换是学习计算机科学的基础,掌握了进制和进制转换,可以更好地理解计算机的工作原理和计算机科学的其他知识。 进制是一个记数系统,它是由某种规则组成的记数方法。通常,我们使用的进制有二进制、...

    进制转换源代码

    首先,我们要理解不同进制之间的转换原理,然后详细介绍栈作为辅助工具如何简化这个过程。 进制转换的基本原理是基于各个进制的基数,比如二进制(基数为2)、八进制(基数为8)、十进制(基数为10)和十六进制...

    常用进制转换程序

    在IT领域,进制转换是一项基础且重要的技能,特别是在编程中。本文将深入探讨标题为“常用进制转换程序”的项目,它支持二进制、十六...通过学习和分析这个项目,我们可以更好地掌握进制转换的原理和C++的实践应用。

    IEEE754浮点数与十进制数互相转换原理分析

    ** IEEE754浮点数与十进制数互相转换原理 ** 在计算机科学中,IEEE754标准是用于表示浮点数的一种国际标准,它定义了浮点数的存储格式,使得不同计算机系统之间可以一致地表示和交换浮点数值。这个标准广泛应用于...

    Java编写的进制转换程序

    它们可以直接对二进制位进行操作,这对于理解进制转换的底层原理至关重要。 4. **数据结构**:虽然这个项目主要是关于进制转换,但它可能也涵盖了数据结构的学习。数据结构如数组、链表、栈、队列等是算法和程序...

    36进制转换模块.rar

    在IT领域,进制转换是一项基础且重要的技能,特别是在编程和数据处理中。36进制转换模块通常用于将十进制、二进制、八...同时,这也有助于提升对其他编程语言的理解,因为进制转换的原理在大多数编程语言中都是通用的。

    进制转换器源码

    进制转换是计算机科学中...理解并掌握进制转换对于任何IT从业者来说都是非常基础且重要的技能,尤其是在编程和数据分析中。通过学习和实践这个"进制转换器源码",你可以更好地理解数字在计算机世界中的表示和转换机制。

    任意进制转换工具.rar

    在IT领域,进制转换是一项基础且重要的技能,尤其对于编程和数据分析来说更是不可或缺。"任意进制转换工具"是一个方便快捷的应用程序,它能够帮助用户轻松地在不同进制之间进行转换,如二进制、八进制、十进制、十六...

    进制转换器 8进制 10进制 16进制 转换

    在这个主题中,我们将深入探讨进制转换器的原理,特别是2进制、8进制、10进制和16进制之间的转换,并关注提供的C语言源代码。 2进制(Binary)系统是计算机内部使用的最基本表示方式,由0和1组成,因为计算机电子...

    进制转换小工具

    这对于程序员调试代码、分析数据或理解计算机底层工作原理时非常有用。 总之,掌握进制转换是理解和操作计算机数据的基础,而这款进制转换小工具则提供了一个便捷的工具,使得非专业人士也能轻松进行这些计算,提升...

    各进制转换 c语言

    ### 各进制转换原理 在计算机科学中,数的不同进制表示是非常重要的概念。常见的进制包括二进制(基数为2)、八进制(基数为8)、十进制(基数为10)和十六进制(基数为16)。不同的进制有不同的应用场景:例如二...

    易语言2-62进制转换器

    通过学习和理解易语言2-62进制转换器的源码,我们可以掌握进制转换的基本原理和易语言的编程技巧,进一步拓展编程思维,提升编程能力。同时,这也是一种有趣的实践,可以帮助我们更好地理解和应用计算机科学的基础...

    ASCii转换 进制转换工具exe文件

    2. **进制转换原理**:进制转换是将一个数从一种进制转换为另一种进制的过程。例如,从十进制转二进制,可以使用“除基取余”法;从二进制转十进制,可以按权展开求和。对于其他进制,原理类似,只是基数不同。 3. ...

    万能进制转换器v1_0(内附源码)

    对于初学者而言,这是一个很好的学习项目,可以帮助他们理解基本的C语言编程和进制转换原理。通过实际编写和运行代码,可以加深对概念的理解,同时也能锻炼解决问题的能力。如果你对进制转换感兴趣,可以尝试运行...

Global site tag (gtag.js) - Google Analytics