一.进制的由来

1.定义

进制也就是进位计数制,是人为定义的带进位的计数方法(有不带进位的计数方法,比如原始的结绳计数法,唱票时常用的“正”字计数法,以及类似的tally mark计数)。 对于任何一种进制---X进制,就表示每一位上的数运算时都是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。

进位制/位置计数法是一种记数方式,故亦称进位记数法/位值计数法,可以用有限的数字符号代表所有的数值。可使用数字符号的数目称为基数,基数为n,即可称n进位制,简称n进制。现在最常用的是十进制。

2.二进制

二进制有两个特点:它由两个数码0,1组成,二进制数运算规律是逢二进一。

为区别于其它进制,二进制数的书写通常在数的右下方注上基数2,或在后面加B表示。

例如:二进制数10110011可以写成(10110011)2,或写成10110011B。

3.八进制

由于二进制数据的基数R较小,所以二进制数据的书写和阅读不方便,为此,在小型机中引入了八进制。八进制的基数R=8=2^3,有数码0、1、2、3、4、5、6、7,并且每个数码正好对应三位二进制数,所以八进制能很好地反映二进制。

八进制用下标8或数据后面加O表示,例如:八进制数据: (352.264)8或352.264O或者(497.351)O。

4.十进制

由于人类解剖学的特点,双手共有十根手指,故在人类自发采用的进位制中,十进制是使用最为普遍的一种。

十进制的基数为10,数码由0-9组成,计数规律逢十进一。例如:十进制数据:(159)10或者(967)D。

5.十六进制

由于二进制数在使用中位数太长,不容易记忆,所以又提出了十六进制数。

十六进制数有两个基本特点:它由十六个数码:数字0~9加上字母A-F组成(它们分别表示十进制数10~15),十六进制数运算规律是逢十六进一,即基数R=16=2^4,通常在表示时用尾部标志H或下标16以示区别,在c语言中用添加前缀0x以表示十六进制数。

例如:十六进制数4AC8可写成(4AC8)16,或写成(4AC8)H。

由此我们可以知道各进制的由来与产生效果的不同了。

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

R进制转换成十进制:

方法就是按权展开相加(系数乘以基数的权次方相加)

系数:就是就是每一位上的数

基数:R进制的基数就是R

权:从右侧开始每一位的索引值从0开始,每一位对应的索引值就是权值.

(1)二进制数转换为十进制数

例:将一个二进制数 (10101)B = (____)D

在二进制数10101中,共有五位系数。计算应从低位到高位依次乘以2的i次方最后相加( i为每一位数字的权重,它是随着低位向高位的进发而每增加1,直到没有系数为止)。

(10101) B= 1*2^4+0*2^3+1*2^2+0*2^1+1*2^0=1+0+4+0+16=21

  所以 (10101) B= (21) D

例:将一个二进制带小数(1101.01) B=(______) D

对于二进制数带小数,以整数的最低位索引权重0为界限,整数部分是大于0的正整数且从右向左,从低位到高位按权分配;而小数部分则是小于0的负整数且从左向右,从高位到低位按权分配的。

( 1101.01 ) 2 = 1× 2^3 + 1× 2^2 + 0× 2^1 + 1× 2^0 + 0×2^(-1) + 1×2^(-2) = 8 + 4 + 1 + 0.25 = 13.25

  所以 (1101.01) B= (13.25) D


(2)八进制转十进制

同理,八进制转换十进制也是每一位乘以8的i次方最终相加而成得到结果。

例如: ( 267.5 ) 8 = (_____) D

( 267.5 ) 8 = 2 × 8^2 + 6 × 8^1 + 7 × 8^0 + 5 × 8^(-1) = 128 + 48 + 7 + 0.625 = 183.625 

所以 ( 267.5 ) 8 =(183.625) D


(3)十进制的安全展开图


(4)十六进制转换十进制

   16进制数共有16位数码,​∈{ 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

例如: ( 4 A 8 F .5 ) H =(_______)D

( 4 A 8 F.5 ) H = 4×16^3 + 10×16^2 + 8×16^1 + 15×16^0 + 5×16^(-1) = 16384 + 2560 + 128 + 15 + 0.3125 = 19087.3125 

所以( 4 A 8 F.5 ) H =(19087.3125)D


        再次总结一句话:R进制转换十进制的口诀就是方法就是按权展开相加(系数乘以基数的权次方相加)

三.十进制转换R进制

十进制转换R进制时,方法步骤:

  1.将十进制整数转换成R进制整数采用“除R取倒余法”。即将十进制整数除以R,得到一个商和一个余数;再将商除以R,又得到一个商和一个余数; 以此类推,直到商等于零为止。每次得到的余数的倒排列,就是对应R进制数的各位数。

        2. 十进制小数转换成R进制小数。十进制小数转换成R进制小数是用“乘R取整法”。即用R逐次去乘十进制小数,以此类推,直到余数为1停止。将每次得到的积的整数部分按各自出现的先后顺序依次排列(与整数的排列顺序相反),就得到相对应的R进制小数。

(1)十进制转二进制--(小数部分除二取余,逆序排列,小数部分乘2取整,顺序排列)

例:将25转换为二进制数

解:25÷2=12 余数1

12÷2=6 余数0

6÷2=3 余数0

3÷2=1 余数1

1÷2=0 余数1               最终将余数倒着写出来即可!

所以(25) 10 =(11001)2

例:将(25.125)D==转换为二进制数

解:整数部分25的计算如上 :(25) 10 =(11001)2

        小数部分:0.125 *2=0.25......整0

                           0.25 *2 =0.50……整0

                           0.50*2=1.0……整1

        所以(0.125) D=(0.001) B,与整数相加而成就是(25.125) 10 =(11001.001)2


(2)十进制转换八进制(整数部分除八取余,逆序排列,小数部分乘八取整,顺序排列)

例:将十进制数1000,转换为八进制数。

 解:1000/8=125,余数为0;
        125/8=15,余数为5;
        15/8=1,余数为7;
        1/8=0,余数为1;
        从上往下看这些余数,逆序写出就是1750,要注意的是最后一定要除到0为止,也就是最后一步1/8=0,一定要除到0.

所以(1000) D=(1750) O


(2)十进制转换十六进制(整数部分除十六取余,逆序排列,小数部分乘十六取整,顺序排列)

例: 将十进制数(0.9032) D转化成16进制小数

解: 0.9032*16=14.4512 取整数14 即E

        0.4512*16=7.2192 取整数7

        0.2192*16=3.5072 取整数3

        0.5072*16=8.1152 取整数8

        0.1152*16=1.8432 取整数1

所以:(0.9032) D= (0.E7381) H


四.二八进制的相互转换

1、先了解二进制数与八进制数之间的对应关系。

2、二进制转换成八进制的方法是,取三合一法,即从二进制的小数点为分界点,向左(或向右)每三位取成一位。

3、分好组以后,对照二进制与八进制数的对应表,将三位二进制按权相加,得到的数就是一位八进制数,然后按顺序排列,小数点的位置不变,最后得到的就是八进制数。

4、这里需要注意的是,在向左(或向右)取三位时,取到最高位(最低位)如果无法凑足三位,就可以在小数点的最左边(或最右边)补0,进行换算。 

下面看看将八进制转为二进制,反过来啦,方法就是一分三,即一个八进制数分成三个二进制数,用三位二进制按权相加,最后得到二进制,小数点依旧就可以了。 


五.二进制与十六进制的相互转换

1.二进制数与十六进制数之间的对应关系。

2.二进制转换成十六进制的方法是,取四合一法,即从二进制的小数点为分界点,向左(或向右)每四位取成一位。

3.    分好组以后,对照二进制与十六进制数的对应表,将四位二进制按权相加,得到的数就是一位十六进制数,然后按顺序排列,小数点的位置不变,最后得到的就是十六进制数。

4.   在向左(或向右)取四位时,取到最高位(最低位)如果无法凑足四位,就可以在小数点的最左边(或最右边)补0,进行换算,与八进制同理。

5.    十六进制转为二进制,反过来啦,方法就是一分四,即一个十六进制数分成四个二进制数,用四位二进制按权相加,最后得到二进制数。


六.八进制与十六进制的相互转换

         八进制与十六进制相互转换时,需要用到中间值--二进制,二进制是八进制与十六进制相互转换的桥梁。这样做不仅方便,而且不易出错。具体的就不再进行过多讲解了。

       

        八进制转换十六进制:

        八进制==>二进制==>十六进制

     

  十六进制转换八进制:

        十六进制==>二进制==>八进制

好了,进制的转换就讲到这里,大家觉得有用的话,关注关注点个赞吧!!

计算机中各种进制之间的相互转换过程相关推荐

  1. 计算机中各进制之间的转换

    各进制之间的转换 由于有些时候总是会忘记一些各种进制之间的转换,长时间不用,就会比较模糊,所有就将其做个总结. 二进制转十进制 首先就相当于二进制数 个位数x20+十位数x21+百位数x22- 例子 ...

  2. IOS笔记-计算机中的进制 反码补码 和存储细节

    1.计算机中的进制 计算机能够识别的只有二进制 0.1 进制就是一种计量的单位 2.常见的进制: 二进制:逢二进一  用0.1来表示,定义一个二进制的数:0b 或者 0B  ,0B1010(2)=10 ...

  3. 15从零开始学Java之详解计算机中的进制转换

    作者:孙玉昌,昵称[一一哥],另外[壹壹哥]也是我哦 CSDN博客专家.万粉博主.阿里云专家博主.掘金优质作者 配套项目资料 https://github.com/SunLtd/LearnJava h ...

  4. 计算机中的进制 进制转换 位运算符号

    进制 计算机内部是由 IC(intergrated Ciruit)这种电子部件构成, CPU 和内存也是 IC 的一种,IC的所有引脚只有直流电压 0V 或 5V两个状态,也就是说 IC 的一个引脚只 ...

  5. 4、计算机中的进制数转换(十进制、二进制、八进制、十六进制)

    目录 课前先导 一.计算机中的进制数 十进制(简写:D) 二进制(简写:B) 八进制(简写:Q) 十六进制(简写:H) 二.计算机进制数之间的转换 1.十进制转二进制 2.十进制转八进制 3.十进制转 ...

  6. java中各进制之间的转换(十进制转十六进制、十进制转二进制、二进制转十进制、二进制转十六进制)...

    在java编辑中有没有遇到经常需要进行java中各进制之间的转换(十进制转十六进制.十进制转二进制.二进制转十进制.二进制转十六进制)的事情呢?下面我们就来分析一下各自是怎么转换的: [java] / ...

  7. 计算机中各进制的转换

    文章转载自:https://blog.csdn.net/weixin_41050155/article/details/79710047 前言:我们生活中习惯上用十进制数来表达数据,然而在计算机中是以 ...

  8. 计算机中的进制和编码

    古时候,人们是如何来传递消息的? 当年周幽王为博褒妃一笑,不顾众臣反对,竟数次无故点燃边关告急用的烽火台,使各路诸侯,长途跋涉,匆忙赶去救驾. 结果,被戏而回. 周幽王从此便失信于诸侯,最后,当边关真 ...

  9. 计算机编码中进制的区别,计算机中的进制和编码(转载)

    转载至 http://www.cnblogs.com/resn/p/5775378.html 古时候,人们是如何来传递消息的? 当年周幽王为博褒妃一笑,不顾众臣反对,竟数次无故点燃边关告急用的烽火台, ...

最新文章

  1. 半监督目标检测相关方法总结
  2. 中国数字化进程比发达国家快,小程序让我感到自豪 | IT领袖峰会
  3. @valid注解_springboot使用自定义注解对接口参数校验
  4. Mysql数据类型之浮点与二进制型数据使用案例总结
  5. Linux命令及文件操作
  6. 2013年完美世界校园招聘笔试题
  7. pytorch 加载模型_福利,PyTorch中文版官方教程来啦(附下载)
  8. mysql 三级联动_c#+Mysql 实现三级联动
  9. 二. 简单的NSIS安装包
  10. linux 文件隐藏,Linux系统怎么隐藏文件夹和文件?
  11. 项目管理工具project软件学习(七) - 创建资源,分配资源、查看资源负荷
  12. 哪吒2之大闹东海电影项目亮点怎么样?
  13. MATLAB-箱图和箱图IQR分析
  14. python钉钉机器人定时发送消息服务器_用Python写一个定时提醒的钉钉机器人
  15. 西瓜书课后习题5.5源码
  16. 照片模糊怎么办?教你简单三步瞬间修复照片清晰度!
  17. 介绍一下PR工具中的blockage
  18. Java String,看这篇就够了
  19. 关于Android证书MD5获取
  20. 关于华擎J3455安装虚拟机PVE和ESXI还有作为纯物理黑群晖的一些事宜

热门文章

  1. python群控手机_(干货)带你用 Python 实现自动化群控(零基础入门篇)
  2. C语言编译时产生的警告:initializing ‘char *‘ with an expression of type ‘const char *‘ discards qualifiers
  3. 微信硬件开发系列教程07-蓝牙nrf51822固件编译(airkiss/airsync)
  4. 关于Android Studio开发中“unfortunately, xxx has stopped”的错误提示
  5. Java 多线程 | 并发知识问答总结
  6. JDK11 API 帮助文档下载【中文版】
  7. Windows cmd 命令行清空
  8. Grakn Forces 2020 D E F
  9. 路由与交换-华为eNSP-交换机上配置DHCP技术
  10. 自然语言处理NLP系列:第二次星空智能对话机器人Zoom线上演示安排