目录

写给读者的话:

一、基本元素(3个)

二、数制的表示

三、数制间的转换

1、R进制转十进制

2、十进制转R进制

(1)十进制整数转R进制

(2)十进制小数转R进制

3、二进制转八进制

4、二进制转十六进制

5、八进制转二进制

6、十六进制转二进制

7、其他进制间的相互转换


写给读者的话:

详解进制转换,击破各位小伙伴的痛、难点,通俗易懂、接地气。

一、基本元素(3个)

让我们来认识一下“进位计数制”中的“三叛逆”:数码、基数、位权

1、数码:在某一种进位计数制下所表示的数使用的最基本的符号

2、基数:在某一种进位计数制中所能使用的数码的个数

注:例如:十进制的数码为0、1、2、3、4、5、6、7、8、9,基数为10;二进制的数码为10、1,基数为2。

3、位权:每一个数码所表示的在十进制下的数值 = 该数码 * “一个与数码所在的数码串中的位置相关的常数”

,其中这个常数称为 位权,简称 权。

注:在进位计数制中,数码所在的位置不同则表示的位权也不同。

                                           

公式3-1 

位权的值 = 基数R的i次幂         公式3-2

注:N指的是某串数码在十进制下所表示的数值; m、n均为正整数,且m表示小数的位数,n表示整数的位数;i为单个数码所在的位置的序号;R是基数,R^i是位权;Ki是单个数码。其中,单个数码所在位置的序号以小数点前的第一位为序号“0”,第二位为序号“1”,小数点后的第一位为序号“-1”依次展开。

举个例子:

     十进制6832.45 = 6 * 10^(4-1) + 8 * 10^(3-1) + 2 * 10^(2-1) + 3 * 10^(1-1) + 4 * 10^(-1) + 5 * 10^(-2)

二、数制的表示

      在书写不同数制下的数时,为了区别开来,人们常在“数的尾部用一个特定的字母来表示(B表示二进制数,O或Q表示八进制数,D表示十进制数,H表示十六进制数,如果未使用任何字母,则默认为十进制数)” 或者是“把数用括号括起来,并在括号的右下角下标写上该数所对应的基数的数值”。

例如:10D、10H、(6832.45)10

三、数制间的转换

1、R进制转十进制

“位权展开求和”法:

                                         

公式3-1 

位权的值 = 基数R的i次幂         公式3-2

注:N指的是某串数码在十进制下所表示的数值; m、n均为正整数,且m表示小数的位数,n表示整数的位数;i为单个数码所在的位置的序号;R是基数,R^i是位权;Ki是单个数码。其中,单个数码所在位置的序号以小数点前的第一位为序号“0”,第二位为序号“1”,小数点后的第一位为序号“-1”依次展开。

2、十进制转R进制

(1)十进制整数转R进制

“除基取余,逆序排列”法:

                                             ①将十进制整数不断除以基数R,并逐次求得余数,直到商为0;

                                             ②将所得到的余数按照逆序的方式写出,即后得到的余数先写,先得到的余数后写。

(2)十进制小数转R进制

“乘基取整,顺序排列”法:

                           ①将十进制小数的小数部分乘以基数R,再将所得结果的整数部分取走;接着乘以基数R,直到“小数部分”出现0或满足所需的精度为止;

                            ②将所得到的整数部分按照得到的先后,在小数点后依从左向右的顺序书写

                            ③在将最初的十进制小数的整数部分按照“除基取余,逆序排列”法转换为R进制,然后将转换的结果写在小数点的前面。

注;还记得 这个十进制小数的整数部分是咋算的吗,还记得苯宝宝在讲“十进制整数转R进制”时的1101这一串神秘的代码吗?

提示:十进制小数转非十进制小数是有误差的。对于某些数,乘若干次基数后,取走整数部分后也不为0,如(0.1)10,要保留多少位小数,取决于用户对数据的精度的要求。例2-8中算到1.504时,如果没有精度的要求的话,就已经满足“小数部分”出现为0的要求,即可停止运算了,即(0.344)10 = (0101)2

———————————————————————————————————————————分割线

3、二进制转八进制

“三位一并”法:

                          ①从小数点开始,整数部分从右向左、小数部分从左向右每三位二进制数划分为一组,位数不足三位时整数部分向前补0,小数部分向后补0;

                         ②按照对应的位置写出与每一组二进制数在十进制下等值的八进制数和小数点,即得到转化后的八进制数。

4、二进制转十六进制

“四位一并”法:

                          ①从小数点开始,整数部分从右向左、小数部分从左向右每四位二进制数划分为一组,位数不足四位时整数部分向前补0,小数部分向后补0;

                         ②按照对应的位置写出与每一组二进制数在十进制下等值的十六进制数和小数点,即得到转化后的十六进制数。

5、八进制转二进制

“一分为三”法:

                         ①对每一位八进制数用对应的三位二进制数表示;

                         ②将得到的二进制数依照从左向右的顺序来书写,即得到转换后的二进制数。

注:八进制、十六进制数转换成二进制数时,整数前的最高位的“0”和小数后的最低位的“0”都是无效的“0”,所以在转换结果中可去掉。 

6、十六进制转二进制

“一分为四”法:

                         ①对每一位十六进制数用对应的四位二进制数表示;

                         ②将得到的二进制数依照从左向右的顺序来书写,即得到转换后的二进制数。

7、其他进制间的相互转换

各位小伙伴可能会有疑问了,咦,八进制和十六进制之间的转化呢?

其实,很简单。各位要会找个“中介”,先将八进制(十六进制)转化为非十六进制(非八进制),然后再转化为十六进制(八进制)。

进位计数制及其转换(二进制、八进制、十进制、十六进制)相关推荐

  1. python十六进制转换成八进制_Python 进制转换 二进制 八进制 十进制 十六进制

    全局定义一定不要丢了 全局定义 base = [str(x) for x in range()] + [ chr(x) for x in range(ord('A'),ord('A')+)] 二进制 ...

  2. 二进制 八进制 十进制 十六进制

    2->8:从个位开始把二进制数三个一组分组,然后每组分别换成8进制, 例:11,101,100 就是分组后的结果 11->3 101->5 100->4 所以结果是354 8- ...

  3. 计算机系统中常用的进制,计算机中常用 二进制 八进制 十进制 十六进制的特点...

    计算机中常用的计数制 用若干数位(由数码表示)的组合去表示一个数,各个数位之间是什么关系,即逢"几"进位,这就是进 位计数制的问题.也就是数制问题.数制,即进位计数制,是人们利用数 ...

  4. 【笔记】二进制八进制十进制十六进制互转详细教程和范例

    最近复习之前的笔记基础.又把进制转换理解了一遍.放在这里以后备查.同时作为分享. 二进制转换八进制十进制十六进制 例: 11010 二进制转换八进制 需要2进制数字为每3位分组的十进制数,不足3位的倍 ...

  5. 二进制 八进制 十进制 十六进制 之间进制转换(图解篇)

    一.本文所涉及的内容(Contents)                      目录 一.本文所涉及的内容(Contents) 二.背景(Contexts) 三.进制转换算法(Convert) ( ...

  6. 二进制八进制十进制十六进制及原码反码补码

    1.进制的介绍 定义:进位制,人们规定的一种进位方式:表示某一位置上的数,运算时是逢X进一位. 十进制是逢十进一:二进制是逢二进一,八进制是逢八进一: 常见进制:二进制,八进制,十进制,十六进制: 学 ...

  7. 二进制 八进制 十进制 十六进制的相互转换(精简总结)

    之前看到的都是铺垫这术语那术语的,看了半天,还不知道怎么处理.这里就根据各种文章和自己的理解总结一小下下,  不一定准确,省略一些概念等繁琐的陈述,直接上结论 1.二进制转八进制:以小数点为分界线,各 ...

  8. Java 二进制,八进制,十进制,十六进制

    学而时习之,温故而知新 二进制特征: 1 : 有2个数字组合,"0" 和"1" 2 : 运算时逢2进1 例如 101010 八进制的特点: 1: 有 8个数组组 ...

  9. Java byte[] 字节数组 转 二进制 八进制 十进制 十六进制字符串

    [前言] Java中很多时候需要将byte[]转为各种进制的字符串显示,从2,8,10,16到比较高级的base64(编码), 至于什么时候需要这样,当你遇到这样的问题就知道了. [代码] 进制转换比 ...

最新文章

  1. 发布json数据_技术分享 | MySQL 8.0.17 GA 发布!
  2. VelocityTracker简单介绍
  3. php购票排位_用PHP+MySQL实现12306购票和退票以及余票查询逻辑
  4. php 字符串 大括号,PHP中的字符串大括号
  5. c语言时间错误的是什么意思,C语言中,如何验证输入日期的正确性!~
  6. Discuz 论坛实现qq小程序
  7. 符晓《TMS320F28335DSP原理、开发及应用》2017版
  8. 个人信息保护法应加速制定
  9. docker装LibreELEC_Linux和macOS系统安装LibreELEC的方法
  10. 用asp.net发送电子邮件
  11. MicroExpSTCNN and MicroExpFuseNet-基于三维时空卷积神经网络的自发面部微表情识别
  12. 一个简单的例子由易到难理解动态规划
  13. 基于i.mx6q平台的NES模拟器移植
  14. 协方差及协方差矩阵的理解
  15. win xp和 win7 的集成版 和 安装方法
  16. 5613-2-冒泡排序
  17. kubernetes(k8s)——使用教程
  18. 内网计算机如何在线查找mac地址,怎么查自己电脑的ip 和mac地址 局域网ip地址怎么查?...
  19. Java并发--happens-before详解
  20. 台式计算机上的音箱应怎么接,台式电脑音箱和两个扬声器应该怎样连接

热门文章

  1. 编写一个写字板初步了解Winform编程(三)——代码设计
  2. flash动画学习指南八:动画编辑器
  3. 2023年PMP超全报考指南,速速收藏!
  4. 自己更新一下box-z比价脚本
  5. 【实习秋招篇之C++面经】
  6. 【程序员眼中的统计学(6)】几何分布、二项分布及泊松分布:坚持离散
  7. 小程序-滑块+iconfont下载本地使用
  8. CI框架下 新浪微博登录接口完整版
  9. 固定资产管理系统比Excel资产管理好在哪儿呢?
  10. java解答约瑟夫问题