计算机基础(5)——进制与进制转换

💗计算机基础系列文章💗

进制

进制也就是进位计数制,是人为定义的带进位的计数方法。 对于任何一种进制---X进制,就表示每一位置上的数运算时都是逢X进一位。十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。

十进制

由于人类解剖学的特点,双手共有十根手指,故在人类自发采用的进位制中,十进制是使用最为普遍的一种。成语"屈指可数"某种意义上来说描述了一个简单计数的场景,而原始人类在需要计数的时候,首先想到的就是利用天然的算筹------手指来进行计数。

数值本身是一个数学上的抽象概念。经过长期的演化、融合、选择、淘汰,系统简便、功能全面的十进制计数法成为人类文化中主流的计数方法,经过基础教育的训练,大多数的人从小就掌握了十进制计数方法。盘中放了十个苹果,通过数苹果我们抽象出来"十"这一数值,它在我们的脑海中就以"10"这一十进制编码的形式存放和显示,而不是其它的形式。从这一角度来说,十进制编码几乎就是数值本身。

十进制的基数为10,数码由0-9组成,计数规律逢十进一

十进制数:

shell 复制代码
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23...

二进制

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

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

例如:二进制数10110011可以写成 ( 10110011 ) 2 (10110011)_2 (10110011)2,或写成10110011B。对于十进制数可以不加标注,或加后缀D,其中D是英文十进制Decimal的首字母D。

  • 二进制数:
shell 复制代码
0,1,10,11,100,101,110,111,1000,1001,1011,1100,1101,1110,1111,10000,10001,10010,10011,10100,10101,10110...

八进制

由于二进制数据的基数R较小,所以二进制数据的书写和阅读不方便,为此,在小型机中引入了八进制。八进制的基数R=8=2^3,有数码0、1、2、3、4、5、6、7,并且每个数码正好对应三位二进制数,所以八进制能很好地反映二进制。八进制用下标8或数据后面加O(Octal )表示 例如:二进制数据 ( 11101010.010110100 ) 2 (11 101 010 . 010 110 100)_2 (11101010.010110100)2 对应八进制数据 ( 352.264 ) 8 (352.264)_8 (352.264)8或352.264O

  • 八进制数:
shell 复制代码
0,1,2,3,4,5,6,7,10,11,12,13,14,15,16,17,20,21,22,23,24,25,26,27,30,31,32,33...

十六进制

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

例如:十六进制数4AC8可写成 ( 4 A C 8 ) 16 (4AC8)16 (4AC8)16,或写成4AC8H0x4AC8

  • 十六进制数:
shell 复制代码
0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,10,11,12,13,14,15,16,17,18,19,1a,1b,1c,1d,1e,1f,20,21,22,23...

进制转换

位权

一个十进制数110,其中百位上的1表示1个 1 0 2 10^2 102,既100,十位的1表示1个 1 0 1 10^1 101,即10,个位的0表示0个 1 0 0 10^0 100,即0。

一个二进制数110,其中高位的1表示1个 2 2 2^2 22,即4,低位的1表示1个 2 1 2^1 21,即2,最低位的0表示0个 2 0 2^0 20,即0。

一个八进制数110,其中高位的1表示1个 8 2 8^2 82,即64,低位的1表示1个 8 1 8^1 81,即8,最低位的0表示0个 8 0 8^0 80,即0。

一个十六进制数110,其中高位的1表示1个 1 6 2 16^2 162,即256,低位的1表示1个 1 6 1 16^1 161,即16,最低位的0表示0个 1 6 0 16^0 160,即0。

可见,在数制中,各位数字所表示值的大小不仅与该数字本身的大小有关,还与该数字所在的位置有关,我们称这关系为数的位权

Tips:十进制数的位权是以10为底的幂,二进制数的位权是以2为底的幂,八进制数的位权是以8为底的幂,十六进制数的位权是以16为底的幂。数位由高向低,以降幂的方式排列。

按权求和计算

二进制数、八进制、十六进制数转换为十进制数的规律是相同的。把x进制数按位权形式展开多项式和的形式,求其最后的和,就是其对应的十进制数------简称"按权求和"也叫按权展开计算法。

  • 2进制转10进制如图所示:

( 10101.01 ) 2 转 10 进制: (10101.01)_2转10进制: (10101.01)2转10进制:

最终求得结果: ( 10101.01 ) 2 (10101.01)_2 (10101.01)2=(21.25)10

  • 8进制转10进制如图所示:

( 306 ) 8 转 10 进制 (306)_8转10进制 (306)8转10进制

最终求得结果: ( 306 ) 8 (306)_8 (306)8=(198)10​

  • 16进制转10进制如图所示:

( 1 a 8 ) 16 转 10 进制 (1a8)16转10进制 (1a8)16转10进制

最终求得结果:(1a8)16=(424)10

倒数取余计算

一个10进制数转换为一个R进制数采用除以R取余法,即用R连续除以10进制,直到商为0,最终按照倒序的方法得到余数即可,这种简单的计算方法我们陈伟倒数取余法。

Tips:R表示进制,10进制转换为2进制则一直除以2得到余数,然后倒数取余,10进制转换为8进制则一直除以8得到余数之后倒数取余,以此类推。

10进制转2进制如图所示:
25 D 转二进制 25D转二进制 25D转二进制

10进制转8进制如图所示:
90 D 转八进制 90D转八进制 90D转八进制

10进制转16进制如图所示:
298 D 转十六进制 298D转十六进制 298D转十六进制

相关推荐
The_Uniform_C@t211 天前
PWN | 对CTF WIKI的复现+再学习 (第八期)
网络·学习·网络安全·二进制
番茄灭世神14 天前
Linux从入门到进阶 第四章
linux·操作系统·计算机基础
剪一朵云爱着25 天前
计算机组成原理 (四)计算机性能
408·计算机组成原理·计算机基础
剪一朵云爱着1 个月前
计算机组成原理(一)计算机概述
408·计算机组成原理·计算机基础·四大件
zfj3211 个月前
小数和整数10进制转2进制算法
算法·二进制·进制转换·十进制
不凉帅1 个月前
NO.2计算机基础
网络·嵌入式·硬件·软件·计算机基础
SomeBottle1 个月前
【小记】解决校园网中不同单播互通子网间 LocalSend 的发现问题
计算机网络·go·网络编程·学习笔记·计算机基础
liu****2 个月前
git工具
git·python·算法·机器学习·计算机基础
故事不长丨2 个月前
C#进制转换:从基础原理到实战应用
开发语言·c#·进制转换·16进制·2进制·10进制
小当家.1052 个月前
操作系统期末考试基础知识点速成:高频考点与题集精要
考研·操作系统·计算机基础·速成·大学·期末考试