首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[系统]linux下如何进制的相互转换

发布于 2024-12-21 21:12:58
0
142

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'

评论
一个月内的热帖推荐
电脑助手
Lv.1普通用户

1446

帖子

14

小组

2710

积分

赞助商广告
站长交流