前言
這里使用python腳本,簡單實現(xiàn)一些verilog描述中,數(shù)字在使用不同進制表示之間的轉(zhuǎn)換,比如說10進制的5000000,經(jīng)過dtb(5000000)就可以可以直接得到返回結(jié)果23'b10011000100101101000000
代碼
1. dtb( )
- 當輸入的十進制整數(shù)大于等于0時,默認返回其無符號二進制數(shù)表示,如果需要該整數(shù)的有符號數(shù)表示,可以直接在最高位前加一個符號位0.
- 當輸入的十進制整數(shù)小于0時,返回負數(shù)的有符號二進制數(shù)表示
def dtb(decimal):
'''decimal -> binary radix expression, if decimal>=0 return unsigned binary value,
or decimal < 0 print signed binary value; that is, if you want a signed decimal>=0
data, add a 0 forward printed data MSB as sign bit.'''
a = 0
b = 0
a = len(bin(decimal)) - 2
b = bin(decimal)
if(decimal >= 0):
print str(a)+'\'b'+str(b[2:])
else:
print str(a-1)+'\'b'+str(b[3:])
測試
radix3.PNG