【python】2進数→10進数と10進数→2進数
1日10分でできるアタマの体操😃
2進数→10進数
特に言うことなし
強いて挙げるとすれば2進をリスト化した時にひっくり返さんといけないことぐらいか
def calc_base2(base2_list): base2_list = reversed(base2_list) #ひっくり返さんとイカン base10 = 0 index = 1 for num in base2_list: if num == 1: base10 += index index *= 2 return base10 # if __name__ == '__main__': # base2 = input() # try: # base2_list = list(map(int, list(base2))) # except: # print('please input only integer.') # exit(0) # print(calc_base2(base2_list))
10進数→2進数
こっちはちとわかりづらい
ビット(0か1)を算出してリストに突っ込む
↓
割る2したあとintでくるんで余り切り捨て
↓
1以下になったら終了
def calc_base10(base10): base2_list = [] while(base10 >= 1): bit = base10 % 2 base2_list.append(bit) base10 /= 2 base10 = int(base10) base2 = ''.join(map(str,reversed(base2_list))) return base2 # if __name__ == '__main__': # base10 = int(input()) # print(calc_base10(base10))