用程序员计算机算进制,一文带你读懂计算机进制
hi,大家好,我是开发者FTD。在我们的学习和工作中少不了与进制打交道,从出生开始上学,最早接触的就是十进制,当大家学习和使用计算机时候,我们又接触到了二进制、八进制以及十六进制。那么大家对进制的认识和使用是否很清楚呢?今天我就带大家一起深入了解一下计算机中的进制。
进制简介
进位制其实是一种记数的方式,所以也称为进位记数法/位值计数法,可以用有限的数字符号代表所有的数值。可使用数字符号的数目称为基数(英文:radix)或底数,基数为n,即可称n进位制,简称n进制。例如平常生活中我们经常用到的十进制,就是使用10个阿拉伯数字0-9进行记数,所以它的基数就是10,称为十进制。
在计算机的世界里,计算机语言就是二进制,计算机能直接识别二进制数据,其它数据都不能直接识别。
对于任何一个数,我们可以用不同的进位制来表示,他们是等价的,只是表示形式不同而已。
例如:对于十进制数 2021,分别用不同机制表示如下:
十进制表示为:
$$
2021_{10}
$$
二进制表示为::
$$
11111100101_{2}
$$
八进制表示为:
$$
3745_{8}
$$
十六进制表示为:
$$
7e5_{16}
$$
右下标数字代表了是几进制,虽然表示形式不同,不过它们所代表的数值都是一样的,均为2021。
常用的进制
大家都知道,计算机是由二进制组成的,除了我们最常用的十进制外,计算机中常用的进制有二进制、八进制和十六进制。下面我们就分别介绍一下。
十进制
十进制是大家最容易理解的进制,由于有一些天然的因素,比如我们的双手总共有十根手指,所以在人类自发采用的进位制中,就很自然的使用了十进制作为主流的计数方法,而且大部分人从小接受的教育都是掌握十进制的计数方法,所以十进制几乎已经深深的烙印在我们的脑海中了。
十进制有10个基本数字,分别为 0、1、2、3、4、5、6、7、8、9,十进制的基数为10,运算规则为”逢十进一”;
十进制的表示方法有两种,使用下标或者后缀D,例如:
$$
2021_{10}
$$
或者在数字后面加上后缀D,如: 2021D
当然由于十进制在日常生活中非常普遍,通常我们可以直接使用数字来表示,默认就是十进制数。
二进制
二进制由于表示简单,运算简单等特点,是计算机技术中广泛采用的一种数制,二进制由两个基本数字组成,分别为0、1,运算规则为”逢二进一”。
为了区别于其他进制,二进制的表示方法也有两种,使用下标或后缀B,例如:
$$
11111100101_{2}
$$
或者在数字后面加上后缀B,如:11111100101B
二进制的特点有:
二进制数中只有两个数码0和1,可用具有两个不同稳定状态的元器件来表示一位数码。
二进制数运算简单,大大简化了计算中运算部件的结构。
二进制天然兼容逻辑运算。
八进制
八进制有8个基本数字,分别为0、1、2、3、4、5、6、7,运算规则为”逢八进一”。
由于二进制数据的基数R较小,所以二进制数据的书写和阅读不方便,为此,在小型机中引入了八进制。八进制的基数n=8=2^3,并且每个数码正好对应三位二进制数,所以八进制能很好地反映二进制。
八进制也有两种表示方法,使用下标或后缀O,例如:
$$
3745_{8}
$$
或者在数字后面加上后缀O,如:3745O
另外一个八进制数,可以用3个二进制数来表示。例如:
$$
3745_{8} = 011111100101_{2}
$$
十六进制
十六进制的引入同样是因为二进制数在实际使用中因为位数太长,不容易记忆才提出了十六进制数。
十六进制有16个基本数字,分别为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,运算规则为”逢十六进一”。
十六进制有两种表示方法,使用下标或后缀H,例如:
$$
7e5_{16}
$$
或者在数字后面加上后缀H,例如:7e5H
一个十六进制数,可以用4位二进制数来表示。例如:
$$
7e5_{16} = 011111100101_{2}
$$
补充小知识-进制的中英文表示:
Binary – 二进制
Octal – 八进制
Hexadecimal – 十六进制
Decimal – 十进制
看完之后是不是知道后缀的字母是什么含义了吧
下面这个表格有助于我们理解各个进制之间的关系:
10进制
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2进制
0
1
10
11
100
101
110
111
1000
1001
1010
1011
1100
1101
1110
1111
10000
8进制
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
16进制
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10
进制转换
我们在上面了解了常用的进制,后面在实际工作中我们可能会在不同的场景下用到不同的进制表示,这就涉及到进制的转换了,那么我们介绍一下常用的进制是如何进行转换的。
1、二进制与十进制之间的转换
十进制转二进制
计算方法:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。最后读数时,从最后一位读起。
例如:
十进制数:2021 转二进制后,二进制数为: 11111100101B
计算过程如下:
第N次
十进制数 2021
商
余数
第1次
2021 / 2
1010
1
第2次
1010 / 2
505
0
第3次
505 / 2
252
1
第4次
252 / 2
126
0
第5次
126 / 2
63
0
第6次
63 / 2
31
1
第7次
31 / 2
15
1
第8次
15 / 2
7
1
第9次
7 / 2
3
1
第10次
3 / 2
1
1
第11次
1 / 2
0
1
计算完成后,从最后一位读起,最后结果为:11111100101B
二进制转十进制
计算方法为:把二进制数按权展开,相加既得十进制数。
例如:
二进制数:11111100101B 转十进制后,十进制数为: 2021
计算过程如下:
二进制
1
1
1
1
1
1
0
0
1
0
1
位数
10
9
8
7
6
5
4
3
2
1
0
公式
2^10
2^9
2^8
2^7
2^6
2^5
0 * 2^4
0 * 2^3
2^2
0 * 2^1
2^0
结果
1024
512
256
128
64
32
0
0
4
0
1
最后将每一位计算结果相加,即
$$
2^{10} + 2^9 + 2^8 + 2^7 + 2^6 + 2^5 + (0*2^4) + (0*2^3) + 2^2 + (0*2^1) + 2^0
= 1024 + 512+256+128+64+32+0+0+4+0+1 = 2021
$$
最后计算结果为:2021
2、二进制与十六进制之间的转换
十六进制转二进制
计算方法:十六进制数通过除2取余法,得到二进制数,对每个十六进制数为4个二进制数,不足时在最左边补领。
例如:
十六进制数:7e5H 转二进制后,二进制数为:011111100101B
计算过程如下:
首先,将十六进制7e5数分成三部分7、e、5,分别做除2取余:
第N次
十进制数 7
商
余数
第1次
7 / 2
3
1
第2次
3 / 2
1
1
第3次
1 / 2
0
1
7 转换为二进制数得 0111,不足四位,前面补零。
第N次
十进制数 14 (e 的十进制数)
商
余数
第1次
14 / 2
7
0
第2次
7 / 2
3
1
第3次
3 / 2
1
1
第4次
1 / 2
0
1
e 转换为二进制为:1110
第N次
十进制数 5
商
余数
第1次
5 / 2
2
1
第2次
2 / 2
1
0
第3次
1 / 2
0
1
5 转换为二进制为:0101,不足四位,前面补零。
最后计算结果为:011111100101B
二进制转十六进制
计算方法:4位二进制数按权展开相加得到1位十六进制数。注意,4位二进制数转成十六进制数是从右到左开始转换,不足时补0。
例如:
二进制数:011111100101B 转十六进制后,十六进制数为: 7e5H
计算过程如下:
首先将二进制数按每4位进行分隔,得到 0111,1110,0101,然后分别计算十六进制数
二进制
0
1
1
1
位数
3
2
1
0
公式
0 * 2^3
2^2
2^1
2^0
结果
0
4
2
1
$$
0 * 2^3 + 2^2 + 2^1 + 2^0 = 0+4+2+4=7
$$
0111 转换为十六进制为 7
二进制
1
1
1
0
位数
3
2
1
0
公式
2^3
2^2
2^1
0 * 2^0
结果
8
4
2
0
$$
2^3 + 2^2 + 2^1 + 0 *2^0 = 8+4+2+0=14
$$
0111 转换为十六进制为 e
二进制
0
1
0
1
位数
3
2
1
0
公式
0 * 2^3
2^2
0 * 2^1
2^0
结果
0
4
0
1
$$
0 * 2^3 + 2^2 + 0 * 2^1 + 2^0 = 0+4+0+1=5
$$
0101 转换为十六进制为 5
最后计算结果为:7e5H
3、十进制与十六进制之间的转换
十六进制转十进制
计算方法为:把十六进制数按权展开,相加既得十进制数。
例如:
十六进制数:7e5H 转十进制后,十进制数为: 2021
计算过程如下:
十六进制数
7
e
5
位数
2
1
0
公式
7 * 16^2
14 * 16^1
5 * 16^0
结果
1792
224
5
$$
7 * 16^2 + 14 * 16^1 + 5 * 16^0 = 1792 + 224 + 5 = 2021
$$
最后计算结果为:2021
十进制转十六进制
计算方法:十进制数除8取余法,即十进制数除8,余数为权位上的数,得到的商值继续除8,依此步骤继续向下运算直到商为0为止。最后读数时,从最后一位读起。
例如:
十进制数: 2021 转十六进制后,十六进制数为: 7e5H
计算过程如下:
第N次
十进制数 2021
商
余数
第1次
2021 / 16
126
5
第2次
126 / 16
7
14
第3次
7 / 16
0
7
计算完成后,从最后一位读起,最后结果为:7e5H
总结
通过上面的介绍和例子,相信大家已经对进制有了深刻的认识和理解,一旦你搞懂他们之间的关系,将对我们在工作中遇到的很多疑问就会迎刃而解,也让我们在处理问题上变的更游刃有余。希望上面的讲解能对大家有所帮助,如果有任何这些方面的疑问,欢迎留言骚扰。
技术人,技术魂,每天肝一篇技术文,ヾ(◍°∇°◍)ノ゙哈哈~
关于作者
GitHub:https://github.com/ForTheDevelopers
掘金:https://juejin.cn/user/1204720472953022
CSDN:https://blog.csdn.net/ForTheDevelopers
知乎:https://www.zhihu.com/people/forthedevelopers
segmentfault:https://segmentfault.com/u/for_the_developers
联系作者
微信号:ForTheDeveloper
公众号:ForTheDevelopers
程序员灯塔
转载请注明原文链接:一文带你读懂计算机进制
用程序员计算机算进制,一文带你读懂计算机进制相关推荐
- 一文带你读懂计算机进制
hi,大家好,我是开发者FTD.在我们的学习和工作中少不了与进制打交道,从出生开始上学,最早接触的就是十进制,当大家学习和使用计算机时候,我们又接触到了二进制.八进制以及十六进制.那么大家对进制的认识 ...
- 程序员就业和发展前景,一文带你了解
程序员,英文是 code worker,顾名思义就是计算机程序的作者.它通常指从事计算机软件开发的人员,当然也包括用计算机语言编写程序来进行各种信息处理的人.现在软件行业中,程序员属于技术含量较高的一 ...
- 【微信小程序】一文带你读懂云开发
前言 云开发(CloudBase)是一个已经存在了很多年的概念,但在过去未能真正成为主流.然而,由于云和软件即服务的宏观趋势的结合,以及技术的进步,如容器技术 Docker 和 Kubernetes, ...
- 一文带你读懂PyQt:用Python做出与C++一样的GUI界面应用程序
一.简介 Python标准库更多的适合处理后台任务,唯一的图形库tkinter使用起来很不方便,所以后来出现了针对Python图形界面开发的扩展库,今天老猿要介绍的是主流Python图形界面扩展库之一 ...
- 程序员的这108个笑话 你都看得懂吗?
微信公众号:javafirst 55.洛阳亲友如相问,就说我在敲代码. 56."如果你ctrl+alt+del,蹦出任务管理器,你从上到下扫一眼,所有的进程你都认识,知道他们是干什么的,并且 ...
- 2020年国家电网计算机类考纲,终于发布!详解2020届国家电网考试大纲,带你读懂考纲变化!...
原标题:终于发布!详解2020届国家电网考试大纲,带你读懂考纲变化! 终于发布!今晚21点,详解2020届国网考试大纲,带你读懂考纲变化! 原创: 小奕 奕诚总部 今天 说来就来!"国网考试 ...
- 一文读懂计算机/软件发展史(中)
每隔一段时间,商业世界的基本逻辑总会因为技术的演变而出现一些"新东西".当时间来到信息化时代,计算机/软件以及后来的互联网就像是一个不断提速的高速引擎,驱动复杂的商业世界步入难以置 ...
- 什么样的程序员才算成熟? 让程序员认清自己的所处的阶段
http://www.nowamagic.net/librarys/veda/detail/1450程序员在经历了若干年编程工作之后,很想知道自己水平到底如何?自己是否已经成为成熟的程序员?虽然程序员 ...
- 重要通知:招募200程序员,免费培训金融知识,不限年龄,有意者进!
今天要告诉大家一个好消息 「CFA创造营2021」 正在全国招募练习生 免费提供全方位CFA(特许金融分析师)学习培训 不限年龄.不限职业 无论你是程序员.摄影人还是投资理财爱好者 只要你有一颗考取C ...
最新文章
- TP5 行为Behavior用法说明
- 物理设计-数据类型的选择
- e3是合法浮点数吗_下面4个选项中,均是合法浮点数的选项是?
- Localtunnel(Node.js 版) 使用教程
- Python实战案例:金庸的功夫流派、人物关系的分析案例(下)
- 信号与线性系统管致中第六版pdf_【对讲机的那点事】无线电天馈系统中载频合路器的作用...
- 神仙打架!传言阿里 P10 赵海平被 P11 多隆判定 3.25 离职,如何评价阿里 P10 赵海平对王垠的面试?...
- HTML中给Button加图片背景的具体写法
- win10重装系统后部分电脑无法调节亮度问题
- linux内核学习(5)山重水复疑无路*
- 海天蚝油《挑战不可能》听风者解人声密码
- 用elasticsearch和nuxtjs搭建bt搜索引擎
- 打包时出现No matching provisioning profile found错误的解决方法
- 2021年安全生产模拟考试(建筑起重机司机-物料提升机模拟考试题库)安考星
- 区块链技术再出新玩法——解决跨境支付问题
- 软件测试的艺术 读书笔记完整版
- Load balancer does not have available server for client xxxx 解决办法 和
- Visual Assist X 10.6.1837.0 Cracked
- django orm基本操作一
- 小程序服务器与系统维护协议,小程序后台维护