欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

linux下如何進制的相互轉(zhuǎn)換

 更新時間:2024年11月29日 14:23:59   作者:零時搞學(xué)習(xí)  
文章介紹了Linux Shell和Python中不同進制(二進制、八進制、十進制、十六進制)的轉(zhuǎn)換方法,包括前綴和轉(zhuǎn)換工具的使用

linux下進制的相互轉(zhuǎn)換

linux下十六進制,十進制,八進制,二進制的相互轉(zhuǎn)換

不同進制的特殊符號

如下:

  • 二進制:數(shù)字前綴為0b0B,字符集為01
  • 八進制:數(shù)字前綴為0o(零),字符集為07。
  • 十進制:沒有數(shù)字前綴,字符集為09。
  • 十六進制:數(shù)字前綴為0x0X,字符集為09AF(大小寫都可以)。

下面是一些示例:

  • 二進制數(shù)字1101可以表示為0b11010B1101
  • 八進制數(shù)字16可以表示為0200o20,其中前綴0表示它是一個八進制數(shù)字。
  • 十進制數(shù)字42不需要前綴。
  • 十六進制數(shù)字1A可以表示為0x1A0X1a。

需要注意的是:

  • 在編寫程序時,應(yīng)在數(shù)字前加上正確的前綴,以明確數(shù)字的進制。
  • 否則,計算機可能會將它們解釋為不同進制的數(shù)字。

在linux shell上進行進制轉(zhuǎn)換

各進制轉(zhuǎn)10進制:

方法一:echo $((現(xiàn)在的進制#原始值))

#2進制數(shù)轉(zhuǎn)10進制數(shù)
root@unassigned:/# echo $((2#1011))
11
#8進制數(shù)轉(zhuǎn)10進制數(shù)
root@unassigned:/# echo $((8#13))
11
#16進制數(shù)轉(zhuǎn)10進制數(shù)
root@unassigned:/# echo $((16#B))
11

方法二:echo ‘ibase=現(xiàn)在的進制;原始值’ | bc

#8進制數(shù)轉(zhuǎn)10進制數(shù)
root@unassigned:~/test# echo 'ibase=8;120' | bc
80
#16進制數(shù)轉(zhuǎn)10進制數(shù)
root@unassigned:~/test# echo 'ibase=16;50' | bc
80
#2進制數(shù)轉(zhuǎn)10進制數(shù)
root@unassigned:~/test# echo 'ibase=2;1010000' | bc
80

進階

利用bc實現(xiàn)各進制相互轉(zhuǎn)換

echo “obase=目標進制; ibase=原始進制; $((原始值))” | bc

#十進制值轉(zhuǎn)換為八進制
root@unassigned:~/test# echo "obase=8; ibase=10; $((120))" | bc
170
#十進制轉(zhuǎn)換為十六進制
root@unassigned:~/test# echo "obase=16; ibase=10; $((120))" | bc
78
#十進制轉(zhuǎn)換為二進制
root@unassigned:~/test# echo "obase=2; ibase=10; $((120))" | bc
1111000

#八進制轉(zhuǎn)換為二進制
root@unassigned:~/test# echo "obase=2; ibase=8; $((170))" | bc
1111000
#八進制轉(zhuǎn)換為十進制
root@unassigned:~/test# echo "obase=10; ibase=8; $((170))" | bc
120
#八進制轉(zhuǎn)換為十六進制
root@unassigned:~/test# echo "obase=16; ibase=8; $((170))" | bc
78

#二進制轉(zhuǎn)換為八進制
root@unassigned:~/test# echo "obase=8; ibase=2; $((1111000))" | bc
170
#二進制轉(zhuǎn)換為十進制
root@unassigned:~/test# echo "obase=10; ibase=2; $((1111000))" | bc
120
#二進制轉(zhuǎn)換為十六進制
root@unassigned:~/test# echo "obase=16; ibase=2; $((1111000))" | bc
78

#十六進制轉(zhuǎn)換為二進制
root@unassigned:~/test# echo "obase=2; ibase=16; $((78))" | bc
1111000
#十六進制轉(zhuǎn)換為八進制
root@unassigned:~/test# echo "obase=8; ibase=16; $((78))" | bc
170
#十六進制轉(zhuǎn)換為十進制
root@unassigned:~/test# echo "obase=10; ibase=16; $((78))" | bc
120

以上簡單介紹了shell下的進制轉(zhuǎn)換,下面再講一下Python中的進制轉(zhuǎn)換:

在python3中有以下進制轉(zhuǎn)換的方式,分別對應(yīng)不同的進制

十六進制hex(),十進制int(),八進制oct(),二進制bin()

值得注意的是,python更加靈活,其值也需要用對應(yīng)的前綴進行辨別

比如:

  • 十六進制數(shù):0xAA
  • 十進制數(shù):10
  • 八進制數(shù):0o20
  • 二進制數(shù):0b110

以上四種進制,除了十進制無前綴,其余進制均有其前綴進行辨別,如0x,0o,0b

轉(zhuǎn)換效果展示:

>>> hex(120)
'0x78'
>>> hex(0o170)
'0x78'
>>> hex(0b1111000)
'0x78'
>>> int(0x78)
120
>>> oct(0x78)
'0o170'
>>> bin(0x78)
'0b1111000'

就不完全一一列舉了,以上就是linux shell下和python3下對進制的轉(zhuǎn)換方法。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論