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

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

1.2 进制

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

1.2.1 十进制

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

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

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

十进制数:

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

1.2.2 二进制

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

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

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

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

1.2.3 八进制

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

  • 八进制数:
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...

1.2.4 十六进制

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

例如:十六进制数4AC8可写成 ,或写成4AC8H0x4AC8

  • 十六进制数:
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...

1.3 进制转换

1.3.1 位权

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

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

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

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

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

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

1.3.2 按权求和计算

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

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

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

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

最终求得结果: =(198)10

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

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

1.3.3 倒数取余计算

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

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

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

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

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


相关文章
|
存储 缓存 前端开发
一种兼容、更小、易用的WEB字体API
如何使用 Google Fonts CSS API 有效地使用WEB字体?
727 0
一种兼容、更小、易用的WEB字体API
|
存储 资源调度 Java
计算机基础(1)——计算机体系结构和组成
计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。 在过去的几十年里,计算机科学经历了令人瞩目的飞速发展。经历了电子管、晶体管、集成电路的世代发展,体积越来越小、性能越来越强,为人类带来了巨大的便利和变革,下面我们来回顾计算机的发展历程。
3659 5
计算机基础(1)——计算机体系结构和组成
|
自然语言处理 编译器 程序员
计算机基础(5)——编程语言与跨平台
程序设计语言是人们为了描述解题步骤(即编程序)而设计的一种具有语法语义描述的记号。计算机语言的种类非常的多,总的来说可以分成**机器语言,汇编语言,高级语言**三大类。 在计算机角度,每一种CPU类型都有自己可以识别的一套指令集,计算机不管这个程序是用什么语言来编写的,其最终只认CPU能够识别的二进制指令集。
474 6
计算机基础(5)——编程语言与跨平台
|
存储 编解码 算法
计算机基础(3)——编码与解码
我们都知道计算机底层采用的是二进制码,即计算机底层存储的全都是0和1,不管是我们看到的视频、图片、音乐、文档和其他任何存储在电脑上的文件,其底层都是0,1,那么为什么要采用0和1来进行存储呢?这些0和1在计算机底层又是如何存储的呢?0和1又是如何变成我们需要的文件呢?
1481 5
计算机基础(3)——编码与解码
|
SQL Java 数据库
Springboot整合JPA 多表关联操作 @Query
Springboot整合JPA 多表关联操作 @Query
1529 0
Springboot整合JPA 多表关联操作 @Query
|
存储
计算机基础(4)——原码、补码、反码
计算机为了区分数值的正负提出了符号位的设定,计算机用最高位存放符号,这个被称为符号位。正数的符号位为0, 负数的符号位为1。 例如,1的二进制表示形式为`0000 0001`,而-1的二进制表示形式为`1000 0001`。在计算机中,一个字节为8个位,最大值为0111 1111,十进制为127。最小值为1000 0000,十进制为-128。因此一个字节的取值范围为-128~127之间。
3182 4
|
SQL 关系型数据库 MySQL
MySQL事务日志-Undo Log工作原理分析
事务的持久性是交由Redo Log来保证,原子性则是交由Undo Log来保证。如果事务中的SQL执行到一半出现错误,需要把前面已经执行过的SQL撤销以达到原子性的目的,这个过程也叫做"回滚",所以Undo Log也叫回滚日志。
814 7
MySQL事务日志-Undo Log工作原理分析
|
网络安全 数据安全/隐私保护
【网络安全 | Crypto】初识RSA XSCTF
【网络安全 | Crypto】初识RSA XSCTF
273 0
【网络安全 | Crypto】初识RSA XSCTF