计算机基础知识 —— 进制(二进制、八进制、十进制、十六进制)


 

        这是一个目录导航 点击 此链接 去学习 更多必须掌握的基础知识!
       


       

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:
在这里插入图片描述
哪里有错误,希望大佬可以多多提出,万分感激!


写作不易,对你有帮助话给个赞鼓励一下吧!

在这里插入图片描述

发布了99 篇原创文章 · 获赞 72 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/ljlfather/article/details/105420660