进制的概念与转换(二进制、十进制、八进制、十六进制)

众所周知,计算机中使用的是二进制运算规则,能够读懂二进制语言,但究竟什么是进制?进制之间是如何相互转化的?今天我们就来详细了解下。

一、数制的由来

1.1 数制的基本概念

数制:也称为计数制,是一种计数的方法,是用一组固定的符号和统一的规则来表示数值的方法。在计数过程中采用进位的方法称为进位计数制(进制),包括数位基数位权三个要素。

  • 数位:指数字符号在一个数中所处的位置。
  • 基数:指在某种进位计数制中数位上所能使用的数字符号的个数。例如十进制的基数为10
  • 位权:数制中某一位上的1所表示数值的大小(所处位置的价值)。例如十进制的230,1的位权是100,2的位权是10,3的位权是1

1.2 计算机语言中常用的进制及表示方法

在计算机汇编语言中,常用的进制有二进制八进制十进制

数制的表示有2种方法,一种表示方法是数字下标法,对于不同进制的数可以将它们加上括号再用数字下标表示进制:

例如:(110010011111)2 代表二进制数 ; (6137)8 代表八进制数

另一种是用后缀字母表示进制:

二进制 B (binary)
八进制 O (octal)
十进制 D (decimal)
十六进制 H (hexadecimal)

例如:(3AB)H 代表十六进制数;(2654)O 代表八进制数

注:当没有下标或后缀时默认为十进制数。

1.3 常见进制的运算规则

  • 二进制:逢二进一

    基数为2,数值部分用两个不同的数字0、1来表示。

  • 十进制:逢十进一

    基数为10,数值部分用0、1、2、3、4、5、6、7、8、9来表示.

  • 十六进制:逢十六进一

    基数是16,有十六种数字符号,除了在十进制中的0至9外,还另外用6个英文字母A、B、C、D、E、F来表示十进制数的10至15。

1.4 二进制的优缺点

二进制最大的优点是运算规则简单,技术上很容易实现,且可靠性高不易出错,容易实现逻辑运算。

二、数制的相互转换

2.1 二进制、八进制、十六进制转十进制

例1:将下列二进制数转换为十进制数

t1tt7n.png

例2:将下列八进制数转换为十进制数

t1t36g.png

例3;将下列十六进制数转换为十进制数

t1tUkq.png

2.2 、十进制转二进制、八进制、十六进制

例1:将下列十进制数转换为二进制

t1t8XQ.png

例2:将下列十进制数转换为八进制

t1tY0s.png

例3:将下列十进制数转换为十六进制

t1tat0.png

2.3 二进制转八进制、十六进制;八进制转十六进制

例1:将二进制数100010转换为八进制

**方法:**将每3个二进制数分为一组(从左至右),不够时补0

t1tdhV.png

例2:将二进制数100111010转换为十六进制

**方法:**将每4个二进制数分为一组(从左至右),不够时补0

t1t0pT.png

例3:将八进制数1325转换为十六进制

八进制数不可以直接转换为十六进制,需要先将其转换为二进制或十进制再转为十六进制。方法同上,这里就不在赘述。答案:2D5

2.4 特殊情况:小数点的处理

如果遇到十进制数例如23.76,如何转换?

t1tB1U.png

三、进制转换快速查表

下表清晰的反应了不同数制之间的对应及转换关系:

t1tDcF.md.png

二进制八进制:使用 PHP 内置函数 decoct(),将二进制转换十进制数,再将十进制转换八进制数。例如,将二进制数 11010 转换八进制数,步骤如下: 1. 将二进制数 11010 转换十进制数,使用 bindec() 函数,得到十进制数 26。 2. 将十进制数 26 转换八进制数,使用 decoct() 函数,得到八进制数 32。 因此,二进制数 11010 转换八进制数为 32。 二进制十六进制:使用 PHP 内置函数 dechex(),将二进制转换十进制数,再将十进制转换十六进制数。例如,将二进制数 11010 转换十六进制数,步骤如下: 1. 将二进制数 11010 转换十进制数,使用 bindec() 函数,得到十进制数 26。 2. 将十进制数 26 转换十六进制数,使用 dechex() 函数,得到十六进制数 1A。 因此,二进制数 11010 转换十六进制数为 1A。 八进制二进制:使用 PHP 内置函数 decoct(),将八进制转换十进制数,再将十进制转换二进制数。例如,将八进制数 32 转换二进制数,步骤如下: 1. 将八进制数 32 转换十进制数,使用 octdec() 函数,得到十进制数 26。 2. 将十进制数 26 转换二进制数,使用 decbin() 函数,得到二进制数 11010。 因此,八进制数 32 转换二进制数为 11010。 八进制十进制:使用 PHP 内置函数 octdec(),将八进制转换十进制数。例如,将八进制数 32 转换十进制数,直接使用 octdec() 函数,得到十进制数 26。因此,八进制数 32 转换十进制数为 26。 八进制十六进制:使用 PHP 内置函数 decoct(),将八进制转换十进制数,再将十进制转换十六进制数。例如,将八进制数 32 转换十六进制数,步骤如下: 1. 将八进制数 32 转换十进制数,使用 octdec() 函数,得到十进制数 26。 2. 将十进制数 26 转换十六进制数,使用 dechex() 函数,得到十六进制数 1A。 因此,八进制数 32 转换十六进制数为 1A。 十六进制二进制:使用 PHP 内置函数 hexdec(),将十六进制转换十进制数,再将十进制转换二进制数。例如,将十六进制数 1A 转换二进制数,步骤如下: 1. 将十六进制数 1A 转换十进制数,使用 hexdec() 函数,得到十进制数 26。 2. 将十进制数 26 转换二进制数,使用 decbin() 函数,得到二进制数 11010。 因此,十六进制数 1A 转换二进制数为 11010。 十六进制八进制:使用 PHP 内置函数 hexdec(),将十六进制转换十进制数,再将十进制转换八进制数。例如,将十六进制数 1A 转换八进制数,步骤如下: 1. 将十六进制数 1A 转换十进制数,使用 hexdec() 函数,得到十进制数 26。 2. 将十进制数 26 转换八进制数,使用 decoct() 函数,得到八进制数 32。 因此,十六进制数 1A 转换八进制数为 32。 十六进制十进制:使用 PHP 内置函数 hexdec(),将十六进制转换十进制数。例如,将十六进制数 1A 转换十进制数,直接使用 hexdec() 函数,得到十进制数 26。因此,十六进制数 1A 转换十进制数为 26。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值