pythonを使用しています。お聞きしたいことがあり投稿させてもらいました。現在プログラムを作っており、内容としてはある2進数4桁の数字(例.0001や0101など)を入力されたらあるきまった10進数の数字を出力されるというものを作っています。例としては、0000→12、0001→0、0010→15、0011→10、0100→2、・・・、1111→4のようにこれが入力されたらこれが出力されるといったものです。
私は表の行と列を用いて結果を出力しようと思いました。入力された2進数の数字4桁の1番目と4番目を足して何番目の行か、2番目と3番目で何列目か(例.1010なら1番目”1”と4番目”0”を足して1行目、2番目と3番目で”01”なので2列目で出力は”10”となる。行も列も0番目、1番目…として考えています)というのを求め結果を出力しようと思い下記のコードを作りましたがエラーすら出なくてどこが悪いかもわかりません。
アドバイスやもっと別の案がある方などおりましたらどうか教えてください。
D1
1def sbox(row,column): 2 sbox =((12,15,2,9), 3 (0,10,11,5), 4 (8,13,1,6), 5 (3,7,14,4)) 6 return sbox[row][column] 7 8 row = int(D1[0]+D1[3], 2) 9 column = int(D1[1:2], 2) 10 print(sbox(row,column)) 11
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。