还不会数制和数制转换吗?快来看看吧!

本文详细介绍了数制(如十进制、二进制、八进制、十六进制)的概念,以及它们之间的转换方法,包括十进制转二进制、八进制、十六进制,以及二进制转十进制。文章还提供了实例和习题,帮助读者理解和掌握这些基本的计算技巧。
摘要由CSDN通过智能技术生成

目录

前言

数制和码制

1.十进制计数

2.二进制计数

2.1二进制转十进制

2.2十进制转二进制

3.八进制、十六进制计数

3.1八、十六进制转十进制

3.2十进制转八进制、十六进制

4.不同进制之间的转换

习题


前言


  • 数制和码制是学习数电和C语言的基础,建议大家好好理解一下,但是也不是特别重要,主要是了解一下进制的构成和运算,能够看懂是多少进制,运算比较重要,可以多看几遍。
  • 推荐专栏数字电子技术基础(持续更新中)。
  • 习题来源:阎石.数字电子技术基础(第六版)
  • 需要教材答案电子版私信我。
  • 码制请看常用的码制
  • 欢迎评论区留言你所遇见的问题,也可以给博主留下建议。
  • 如果您觉得有用,分享让更多的人看看吧!

数制和码制

数制:计数的体制,比如十进制计数,二进制计数,八进制计数,十六进制计数等。码制:对数字进行编码的体制。比如ASCII 、BCD码、8421码、5211码、余三码等。这里不过多介绍,知道什么是数制,什么是码制就好了。

1.十进制计数

说到进制,得是从简单的十进制说起。十进制为啥叫十进制呢?十进制计数体制是“满十进一”,一个数中它能够看见的数字是0~9,不会出现其他的数字。但是只是用0~9计数,我们最多只能数到9,这可就难受了。那比9大的数我们在生活中如何表示的嘞?

没错!就是这样表示的。这样看来,不难发现,当个位数超过9的时候,会向十位产生进位,也就是十位上的数会加1,这就是“满十进一”。这里也会发现,到9个位就会变为0,我们也可理解为低位从0~9这十个数数完了就该向高位进1. (这里低位意思是与比它本身大一位的相比较说的,高位是比它本身低一位相比较的,比如123,1对于2来说是高位,2对于1来说是低位,当然这里得是相邻的两位数)。

这里有这样的公式:

D=\sumk_{i}×^{}10^{i}^{}

每个符号表示啥意思呢?

光是这样看很抽象,举个例子:123.456用公式的字符表示。

 这里也可以巧记:小数点前的数位置在0,往右为正,往左为负,直接数就好了。

当我们将10变成N时,可以得到任意进制转换成十进制的公式,即:

D=\sumk_{i}×^{}N^{i}^{}

其中N^{i}表示权重,N为多少就是多少进制转换为十进制。

2.二进制计数

前面的十进制是为了给这部分做铺垫,这里是非常重要的部分。

2.1二进制转十进制

二进制,也就是基数是2,类比十进制,二进制应该是“满二进一”,并且出现的数字只能是0~1两个数,这里千万记住只能出现0和1组成的数。二进制转为十进制的公式为:

^{}D=\sumk_{i}×^{}2^{i}^{}

为了能够区分所写的数字表示为进制下的数字,通常我们会在数字的右下角加上角标,比如十进制下的101表示为\left ( 101 \right )_{10},二进制下的表示为\left ( 101 \right )_{2},八进制下的表示为\left ( 101 \right )_{8}······有时候我们也用B代替下标2,D代替下标10,O代替下标8.

2.2十进制转二进制

这二进制变十进制会了,那十进制变二进制不会,岂不是得打架了?

 所以接下来教会你如何将十进制转换为二进制。

整数

方法一:

将十进制数除以2,得到余数和商,得到的商继续除以2取余(余数为0写0,为1写1),直到商为0时停止,将得到的余数从下往上排序,就可以得到这个十进制数的二进制了。具体为啥就不说了,记住方法就好了。

比如将十进制整数173变为二进制,过程如下:

方法二:

这个方法我觉得比较好,大家可以好好看下······

需要熟悉2^{0}= 12^{1}= 22^{2}= 42^{3}= 82^{4}= 162^{5}= 322^{6}= 642^{7}= 128······

然后找出原来十进制数在2的相邻次方的范围,将十进制数减去比它小的2的次方的数,得到差,继续寻找比差小的2的次方的数,得到差,继续重复,直到差为0为止。然后将从2的次方最大的开始,到着数到0,数一个,写一个,有就写1,没有就写0.

比如用这个方法将173变为二进制,过程如下:

 这个方法主要是步骤简单,不需要一直除2,相信大家习惯使用这个方法后,会喜欢上的。

 小数
小数化为二进制小数时,将小数乘以2,所获的数的其整数即是二进制小数部分,例如将\left ( 0.8125\right )_{10}化为二进制小数操作如下:

小数和整数同时出现时,只需要分开算,即:整数用整数的方法算,小数用小数的方法算。 

3.八进制、十六进制计数

用二进制表示一个数通常需要很多位表示,

为了能够更容易表示一个数,通常还用到了八进制和十六进制表示。

3.1八、十六进制转十进制

首先需要清楚的是八进制表示的时候所用的数字是0~7,“满八进一”,十进制转八进制的公式:

D=\sumk_{i}×^{}8^{i}^{}

十六进制比较特殊,和前面的进制进行类比,我们能够知道,十六进制表示的时候应该是0~15,“满十六进一”,十进制转十六进制的公式:

D=\sumk_{i}×^{}16^{i}^{}

这里我们很容易发现,当10~15继续用其本身来表示时,多位数就很难知道到到底表示的是什么,划分的时候,1113是应该1 11 3?还是11 13······

所以我们得用一个东西代表10~15,这里我们用字母代替,即A(10)、B(11)、C(12)、     D(13)、E(14)、F(15),这里大小写字母都可以。

3.2十进制转八进制、十六进制

十进制转八、十六进制会了,那八、十六进制转十进制呢?

方法一:

其实和十进制转二进制的方法一 一样的,这里就不多说了,因为很少有人这么用。

方法二:

这个方法,用过的人都说好!!

我们先将十进制转换为等值的二进制,然后二进制从右往左划分,八进制是三个为一组,十六进制是四个为一组,然后将划分的变为与其等值的十进制数,所得的结果就是对应的进制数。

为啥这么弄呢?其实用到的原理就是2^{3}= 82^{4}= 16

细心的老铁肯定发现了这个问题,为啥呢?

其实八进制能够出现的数字是0~7,用三位二进制数就可以表示出来,所以用000~111就可以表示八进制的数,所以可以这么用。十六进制也是同样的原理,就不多说了。

4.不同进制之间的转换

这里主要讲的是十进制、二进制、八进制、十六进制之间的转换,需要将十进制转为二进制,或者将二进制转为十进制。所以十进制和二进制之间的转换很重要。

列转为行方法十进制二进制八进制十六进制
十进制1.2.2十进制转二进制方法二转为二进制后将数划分为三个为一组,将每组变为相应的十进制数转为二进制后将数划分为四个为一组,将每组变为相应的十进制数
二进制^{}D=\sumk_{i}×^{}2^{i}^{}将数划分为三个为一组,将每组变为相应的十进制数将数划分为四个为一组,将每组变为相应的十进制数
八进制D=\sumk_{i}×^{}8^{i}^{}每一位变为三位表示的二进制先变为二进制,再将二进制划分为四个为一组,将每组变为相应的十进制数
十六进制D=\sumk_{i}×^{}16^{i}^{}每一位变为四位表示的二进制先变为二进制,再将二进制划分为三个为一组,将每组变为相应的十进制数

所以可以发现,八进制和十六进制与其他进制之间的转换关系可以总结为:

先将八/十六进制转换为等值的二进制,然后进行划分后变为相应的十进制数。来点例题就能体验到了。

习题

例1.1(P18)为了将600份文件顺序编码,如果采用二进制编码,最少需要用几位?如果改用八进制或十六进制代码,则最少各需要用几位?

解析:这个题就是需要将600这个数转换为相应的二进制、八进制、十六进制。

因为问的是需要多少位,所以数出结果是多少就好了。

答案:二进制:10位,八进制:4位,十六进制:3位。

例1.2(P18)将下列二进制整数转换为等值的十进制数。

(1)\left ( 01101 \right )_{2};(2)\left ( 10100 \right )_{2};(3)\left ( 10010111 \right )_{2};(4)\left ( 1101101 \right )_{2}

例1.3(P18)将下列二进制小数转换为等值的十进制数。

(1)\left (0.1001 \right )_{2};(2)\left (0.0111 \right )_{2};(3)\left ( 0.101101\right )_{2};(4)\left (0.001111\right )_{2}

例1.4(P18)将下列二进制数转换为等值的十进制数。

(1)\left ( 101.011\right )_{2};(2)\left ( 110.101 \right )_{2};(3)\left ( 1111.1111 \right )_{2};(4)\left (1001.0101 \right )_{2}

例1.5(P18)将下列二进制数转换为等值的八进制数和十六进制数。

(1)\left ( 1110.0111 \right )_{2};(2)\left ( 1001.1101 \right )_{2};(3)\left ( 0110.1001\right )_{2};(4)\left (101100.110011 \right )_{2}

例1.6(P18)将下列十六进制数转换为等值的二进制数。

(1)\left ( 8C \right )_{16};(2)\left ( 3D.BE\right )_{16};(3)\left (8F.FF\right )_{16};(4)\left (10.00 \right )_{16}

例1.7(P18)将下列十进制数转换为等值的二进制数和十六进制数。

(1)\left (17 \right )_{10};(2)\left ( 127\right )_{10};(3)\left (79\right )_{10};(4)\left (255\right )_{10}

法一:

法二: 

例1.8(P18)将下列十进制数转换为等值的二进制数和十六进制数。要求二进制数保留小数点以后8位有效数字。

(1)\left ( 0.519\right )_{10};(2)\left ( 0.251\right )_{10};(3)\left (0.0376\right )_{10};(4)\left (0.5128 \right )_{10}

例1.9(P18)将下列十进制数转换为等值的二进制数和十六进制数。要求二进制数保留小数点以后4位有效数字。

(1)\left ( 25.7\right )_{10};(2)\left ( 188.875\right )_{10};(3)\left (107.39\right )_{10};(4)\left (174.06 \right )_{10}

随手点赞一次,运气增加一份!!

  • 20
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值