#將十進位制數轉換為二進位制
defdec2bin
(dec)
:if checkdec(dec)
:return
str(
bin(
int(dec)))
#將十進位制數轉換為八進位制
defdec2oct
(dec)
:if checkdec(dec)
:return
str(
oct(
int(dec)))
#將十進位制數轉換為十六進製制
defdec2hex
(dec)
:if checkdec(dec)
:return
str(
hex(
int(dec)))
#校驗十進位制數字
defcheckdec
(dec)
: matchobj = re.match(r'(0[dd])?[0-9]+$'
,dec)
if matchobj:
return
true
else
:return
false
測試用例
class
decmethodstest
(unittest.testcase)
:def
test_dec2bin
(self)
: self.assertequal(ipnumconvertmethods.dec2bin(
'10'),
'0b1010'
)def
test_dec2oct
(self)
: self.assertequal(ipnumconvertmethods.dec2oct(
'10'),
'0o12'
)def
test_dec2hex
(self)
: self.assertequal(ipnumconvertmethods.dec2hex(
'10'),
'0xa'
)
#將二進位制數轉換為十進位制
defbin2dec
(bin):
if checkbin(
bin)
:return
str(
int(
bin,2)
)else
:return
""#將二進位制數轉換為八進位制
defbin2oct
(bin):
if checkbin(
bin)
:return
str(
oct(
int(
bin,2)
))else
:return
""#將二進位制數轉換為十六進製制
defbin2hex
(bin):
if checkbin(
bin)
:return
str(
hex(
int(
bin,2)
))else
:return
""#校驗二進位制數字
defcheckbin
(bin):
matchobj = re.match(r'(0[bb])?[0-1]+$'
,bin
)if matchobj:
return
true
else
:return
false
測試用例
class
binmethodstest
(unittest.testcase)
:def
test_bin2dec
(self)
: self.assertequal(ipnumconvertmethods.bin2dec(
'1010'),
'10'
)def
test_bin2oct
(self)
: self.assertequal(ipnumconvertmethods.bin2oct(
'1010'),
'0o12'
)def
test_bin2hex
(self)
: self.assertequal(ipnumconvertmethods.bin2hex(
'1010'),
'0xa'
)
#將八進位制數轉換為十進位制
defoct2dec
(oct):
if checkoct(
oct)
:return
str(
int(
oct,8)
)else
:return
""#將八進位制數轉換為二進位制
defoct2bin
(oct):
if checkoct(
oct)
:return
str(
bin(
int(
oct,8)
))else
:return
""#將八進位制數轉換為十六進製制
defoct2hex
(oct):
if checkoct(
oct)
:return
str(
hex(
int(
oct,8)
))else
:return
""#校驗八進位制數字
defcheckoct
(oct):
matchobj = re.match(r'(0[oo])?[0-7]+$'
,oct
)if matchobj:
return
true
else
:return
false
測試用例
class
octmethodstest
(unittest.testcase)
:def
test_oct2bin
(self)
: self.assertequal(ipnumconvertmethods.oct2bin(
'12'),
'0b1010'
)def
test_oct2dec
(self)
: self.assertequal(ipnumconvertmethods.oct2dec(
'12'),
'10'
)def
test_oct2hex
(self)
: self.assertequal(ipnumconvertmethods.oct2hex(
'0o12'),
'0xa'
)
#將十六進製制數轉換為十進位制
defhex2dec
(hex):
if checkhex(
hex)
:return
str(
int(
hex,16)
)else
:return
""#將十六進製制數轉換為二進位制
defhex2bin
(hex):
if checkhex(
hex)
:return
str(
bin(
int(
hex,16)
))else
:return
""#將十六進製制數轉換為八進位制
defhex2oct
(hex):
if checkhex(
hex)
:return
str(
oct(
int(
hex,16)
))else
:return
""#校驗十六進製制
defcheckhex
(hex):
matchobj = re.match(r'(0[xx])?[0-9a-fa-f]+$'
,hex
)if matchobj:
return
true
else
:return
false
測試用例
class
hexmethodstest
(unittest.testcase)
:def
test_hex2bin
(self)
: self.assertequal(ipnumconvertmethods.hex2bin(
'0xa'),
'0b1010'
)def
test_hex2dec
(self)
: self.assertequal(ipnumconvertmethods.hex2dec(
'0xa'),
'10'
)def
test_hex2hex
(self)
: self.assertequal(ipnumconvertmethods.hex2oct(
'0xa'),
'0o12'
)
不同進製間的轉換
1 其他進製到十進位制 係數 就是每乙個位上的數值 基數 x進製的基數就是x 權 對每乙個位上的資料,從右,並且從0開始編號,對應的編號就是該資料的權。結果 係數 基數 權次冪之和。2 十進位製到其他進製 除基取餘,直到商為0,餘數反轉。3 進製轉換的快速轉換法 a 十進位制和二進位制間的轉換 84...
js 不同進製之間相互轉換
如果a進製與b進製都不等於10,則十進位製作為橋梁進行轉換 例如10進製的數字11 轉換為3進製為102 10進製的數字11 轉換為4進製為23 現在進行3進製轉4進製 1 3進製轉10進製 2 10進製轉4進製 在js裡。我們可以借助 parseint 跟 numberobject.tostrin...
不同進製大數之間的相互轉換
本文參考sjf0115 大數的進製轉換 根據之前所講的大數取餘演算法,我們可以再進一步寫乙個不同進製的大數相互轉化的演算法。我們約定大數用字元陣列的形式儲存。比如我們把十進位制數443轉換為三進製數,1.用被除數第一位的數對3取餘的第一位的餘數1,除以3得到商的第一位 2.用上一步得到的餘數乘以10...