这是一个目录导航 点击 此链接 去学习 更多必须掌握的基础知识!
1、关于进制:
对于进制,我们都很熟悉,从小学开始就知道 1、2…9、10、11… 这就是十进制。 几进制就是逢几进1。
为什么全世界各地都从一开始就习惯使用 10 进制,很简单,因为我们有10个手指头,哈哈哈哈哈 直接数指头就行了!
那么对于计算机来说,它并没有手指,它处理数据是根据2进制来处理的! 二进制:010101…0101 。 那么为什么是 2进制 呢? 因为机器处理指令的硬件都是双态的,只要是涉及到数据的,那么就是 电位的 “高” 或 “低”,即二进制的 “1” 或 “0”。
在程序猿使用机器语言来编写程序的时候,二进制太麻烦,为了方便会使用 八进制 或 十六进制。谈到机器语言的话,跟十进制就没啥关系了!
编程语言中 进制的前缀:
上面说到了,开发常用进制是 八进制 或 十六进制,那么如果你输入 5 ,计算机怎么知道你输入的5 是八进制呢 还是 十六进制呢?这里就讲到了 进制前缀:
PYthon 有三个内置函数,可以将你传递给他们的十进制数字 转换为 八进制、十六进制、二进制…
bin() —— 二进制、oct() —— 八进制、hex() —— 十六进制。
前缀: 二进制:0b (数字0)
八进制:0o 或 0O (是数字0 和 字母小o 或 字母大O)
十进制:0D 或 0d (数字0)
十六进制:0x 或 0X(数字0) 或 使用后缀: H 表示!
进制表:
十进制 | 二进制 | 八进制 | 十六进制 |
---|---|---|---|
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
2 | 10 | 2 | 2 |
3 | 11 | 3 | 3 |
4 | 100 | 4 | 4 |
5 | 101 | 5 | 5 |
6 | 110 | 6 | 6 |
7 | 111 | 7 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | A |
11 | 1011 | 13 | B |
12 | 1100 | 14 | C |
13 | 1101 | 15 | D |
14 | 1110 | 16 | E |
15 | 1111 | 17 | F |
16 | 10000 | 20 | 10 |
17 | 10001 | 21 | 11 |
18 | 10010 | 22 | 12 |
… | … | … | … |
十进制 —> 二进制
在计算十进制 转换 二进制的时候,一般情况都选择除法,十进制的数 / 2 然后看余数 和 结果。因为不管怎么除 不管余数是几,最后除完都为 2/2=1,所以除了 0 以外,所有的二进制数的开头都为 1 !
十进制 | 二进制 | 规律 |
---|---|---|
0 | 0 | 无规律 |
1 | 1 | 无规律 |
2 | 10 | 2=2^1(2的1次方),0的个数 = 2 的几次方!1个0 就为 2的1次方 |
3 | 11 | 3=2+1,2 和 1 换成二进制数,并且 个+个,十位+十位 即可!1+10=11 |
4 | 100 | 4=2^2 ,2的2次方,所以有两个0;即为 100 |
… | … | … |
8 | 1000 | 8=2^3;所以就为 1000 |
懂了吧,其他的数 就分开两个数,用他们对应的 二进制数相加 可以得出!
二进制 —> 十进制 :
二进制数 转换 十进制数 也很简单!
eg: 二进制数 10010011 转换为 十进制数:
第一步:先将 二进制数拆分开 为: 10000000 、10000、10、1
10000000 有 7个 0,即为 2^7 = 128
10000 有 4个 0,即为 2^4 = 16
10 有 1个 0,即为 2^1 = 2
1 就为 1
最后相加: 128+16+2+1=147 !
使用 bc 命令 来自动转换:
如果你懒得算,可以使用 Linux 命令 中的 bc命令 —— 计算器!一进去默认是10进制!
问:如何输出 二进制的数字呢???
答:进去以后输入 : obase=2 即可 ! o 理解成 output;然后输入你要转换的十进制数字,然后摁回车即可转换!输入 quit 即可退出计算器,下次进入 输入 输出都是十进制数!
问:如何使用 bc 计算器 输入 二进制数 转换为 十进制数呢?
答:使用 ibase=2 即可; i 为 input ,刚好与 obase 对应 !当你输入 二进制以外的数的时候,它会自动返回错误码 : 3 !
同理:
十六进制 —> 十进制 : ibase=16,即可,默认输出就是十进制。
其他的也是这样,就不一 一列举了!
记得,默认的 ibase=10 ,obase=10 !
貌似 bc 只支持 十进制 与 二进制 八进制 十六进制 之间转换,bc 并不允许 二进制 转 八进制 或 十六进制。其他 进制 转也是不行的!
look:
哪里有错误,希望大佬可以多多提出,万分感激!
写作不易,对你有帮助话给个赞鼓励一下吧!