verilogのための2進数と2進数の補数変換
verilogを書いていると2進数または2進数の補数の値を知りたいときがあります。
そんな時、毎回ターミナルを離れてブラウザで検索して変換するのはめんどくさいため
pythonで変換スクリプトを作成しました。
実行方法は以下のとおりです。
$ python binary.py dec : ← ここに正か負の整数入力 width : ← bit幅を入力 // example $ python binary.py dec :-3 width :5 5'b11101 ← 同時にクリップボードにコピーされる
ソースコードは以下になります。
from Tkinter import Tk #クリップボードにコピーするため dec = input("dec :") width = input("width :") if dec < 0: dec_maxwidth = 2 ** width binary = bin(dec_maxwidth + dec) #補数をとる else: binary = bin(int(dec)) a = "{}".format(binary.replace('0b', '')).rjust(int(width), '0') binout = str(width) + "'b" + a print(binout) r = Tk() r.clipboard_append(binout)