linux下进制的相互转换linux下十六进制,十进制,八进制,二进制的相互转换不同进制的特殊符号如下:二进制:数字前缀为0b或0B,字符集为0和1。八进制:数字前缀为0o(零),字符集为0到7。十进...
linux下进制的相互转换
linux下十六进制,十进制,八进制,二进制的相互转换
不同进制的特殊符号
如下:
二进制:数字前缀为0b或0B,字符集为0和1。
八进制:数字前缀为0o(零),字符集为0到7。
十进制:没有数字前缀,字符集为0到9。
十六进制:数字前缀为0x或0X,字符集为0到9和A到F(大小写都可以)。
下面是一些示例:
二进制数字1101可以表示为0b1101或0B1101。
八进制数字16可以表示为020或0o20,其中前缀0表示它是一个八进制数字。
十进制数字42不需要前缀。
十六进制数字1A可以表示为0x1A或0X1a。
需要注意的是:
在编写程序时,应在数字前加上正确的前缀,以明确数字的进制。
否则,计算机可能会将它们解释为不同进制的数字。
在linuxshell上进行进制转换
各进制转10进制:
方法一:echo$((现在的进制#原始值))
#2进制数转10进制数
root@unassigned:/#echo$((2#1011))
11
#8进制数转10进制数
root@unassigned:/#echo$((8#13))
11
#16进制数转10进制数
root@unassigned:/#echo$((16#B))
11
方法二:echo‘ibase=现在的进制;原始值’|bc
#8进制数转10进制数
root@unassigned:~/test#echo'ibase=8;120'|bc
80
#16进制数转10进制数
root@unassigned:~/test#echo'ibase=16;50'|bc
80
#2进制数转10进制数
root@unassigned:~/test#echo'ibase=2;1010000'|bc
80
进阶
利用bc实现各进制相互转换
echo“obase=目标进制;ibase=原始进制;$((原始值))”|bc
#十进制值转换为八进制
root@unassigned:~/test#echo"obase=8;ibase=10;$((120))"|bc
170
#十进制转换为十六进制
root@unassigned:~/test#echo"obase=16;ibase=10;$((120))"|bc
78
#十进制转换为二进制
root@unassigned:~/test#echo"obase=2;ibase=10;$((120))"|bc
1111000
#八进制转换为二进制
root@unassigned:~/test#echo"obase=2;ibase=8;$((170))"|bc
1111000
#八进制转换为十进制
root@unassigned:~/test#echo"obase=10;ibase=8;$((170))"|bc
120
#八进制转换为十六进制
root@unassigned:~/test#echo"obase=16;ibase=8;$((170))"|bc
78
#二进制转换为八进制
root@unassigned:~/test#echo"obase=8;ibase=2;$((1111000))"|bc
170
#二进制转换为十进制
root@unassigned:~/test#echo"obase=10;ibase=2;$((1111000))"|bc
120
#二进制转换为十六进制
root@unassigned:~/test#echo"obase=16;ibase=2;$((1111000))"|bc
78
#十六进制转换为二进制
root@unassigned:~/test#echo"obase=2;ibase=16;$((78))"|bc
1111000
#十六进制转换为八进制
root@unassigned:~/test#echo"obase=8;ibase=16;$((78))"|bc
170
#十六进制转换为十进制
root@unassigned:~/test#echo"obase=10;ibase=16;$((78))"|bc
120
以上简单介绍了shell下的进制转换,下面再讲一下Python中的进制转换:
在python3中有以下进制转换的方式,分别对应不同的进制
十六进制hex(),十进制int(),八进制oct(),二进制bin()
值得注意的是,python更加灵活,其值也需要用对应的前缀进行辨别
比如:
十六进制数:0xAA
十进制数:10
八进制数:0o20
二进制数:0b110
以上四种进制,除了十进制无前缀,其余进制均有其前缀进行辨别,如0x,0o,0b
转换效果展示:
>>>hex(120)
'0x78'
>>>hex(0o170)
'0x78'
>>>hex(0b1111000)
'0x78'
>>>int(0x78)
120
>>>oct(0x78)
'0o170'
>>>bin(0x78)
'0b1111000'