あくまで備忘録なんで雑に記録します
①10進数を2進数に
whileにして >=1 にしてリストに入れやすいから、長めの筆算
X = int(input())
B = []
while X >= 1:
B.insert(0, str(X % 2))#筆算のあまりを、str化、逆ならべリスト化
X = X // 2#筆算の商に再帰をかけると、どんどん小さくなっていく
B = ''.join(B)#str化しているから、そのまま足せる
if not B:#0だけ空リストになるから、空リストなら0を
print(0)
else:
print(B)
def化して1〜255まで羅列
def f(X):
B = []
while X >= 1:
B.insert(0, str(X % 2))
X = X // 2
B = ''.join(B)
return B
for i in range(256):
print(f(i))
もっと単純に10→2
X = int(input())
B = bin(X)[2:]
#X=7 111
#X=8 1000
②2進数を10進数に
こっちは簡単
B = input()#strのまま
X = 0
for i in range(len(B)):
X += int(B[i*-1 - 1]) * (2**i)
print(X)
def化して1〜255まで羅列した2進数を10進数に
def f(B):#B→X
X = 0
for i in range(len(B)):
X += int(B[i * -1 - 1]) * (2 ** i)
return X
def g(X):#X→B
B = []
while X >= 1:
B.insert(0, str(X % 2))
X = X // 2
B = ''.join(B)
return B
for j in range(1,256):
print(f(g(j)))
def base_10_to_n(X, n):#10進数をn進数に
if X // n == 0:#剰余の商が0になれば終了
return str(X % n)#剰余の余をリターン
else:
return base_10_to_n(X//n, n) + str(X % n)
def base_n_to_10(B, n):#Bはstr入力で!n進数を10進数に
out = 0
for i in range(1, len(str(B)) + 1):
out += int(B[-i]) * (n ** (i - 1))
return out
もっと単純に2→10
B = input()
X = int(B, base=2)
#B=111 7
#B=1000 8
コメント