私はこの小さな宿題をしていて、10進数を8進数に変換してから、8進数を10進数に変換する必要がありました。私は最初の部分をしました、そして私の人生を救うために2番目を理解することができません。最初の部分は次のようになりました:
decimal = int(input("Enter a decimal integer greater than 0: "))
print("Quotient Remainder Octal")
bstring = " "
while decimal > 0:
remainder = decimal % 8
decimal = decimal // 8
bstring = str(remainder) + bstring
print ("%5d%8d%12s" % (decimal, remainder, bstring))
print("The octal representation is", bstring)
私はそれをここで変換する方法を読みます: 10進数から10進数へ しかし、それをコードに変換する方法の手がかりがありません。どんな助けでもありがたいです。ありがとうございました。
10進数から8進数へ:
oct(42) # '052'
8進数から10進数へ
int('052', 8) # 42
8進数を文字列として返したい場合は、str
でラップすることができます。
誰かがこれらを役に立つと思うかもしれません
def dec2base():
a= int(input('Enter decimal number: \t'))
d= int(input('Enter expected base: \t'))
b = ""
while a != 0:
x = '0123456789ABCDEF'
c = a % d
c1 = x[c]
b = str(c1) + b
a = int(a // d)
return (b)
def dec2base_R():
a= int(input('Enter start decimal number:\t'))
e= int(input('Enter end decimal number:\t'))
d= int(input('Enter expected base:\t'))
for i in range (a, e):
b = ""
while i != 0:
x = '0123456789ABCDEF'
c = i % d
c1 = x[c]
b = str(c1) + b
i = int(i // d)
return (b)
def todec():
c = int(input('Enter base of the number to convert to decimal:\t'))
a = (input('Then enter the number:\t ')).upper()
b = list(a)
s = 0
x = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F']
for pos, digit in enumerate(b[-1::-1]):
y = x.index(digit)
if int(y)/c >= 1:
print('Invalid input!!!')
break
s = (int(y) * (c**pos)) + s
return (s)
注:誰かがそれらを必要とする場合、私はGUIバージョンも持っています
def decimal_to_octal(num1):
new_list = []
while num1 >= 1:
num1 = num1/8
splited = str(num1).split('.')
num1 = int(splited[0])
appendednum = float('0.'+splited[1])*8
new_list.append(int(appendednum))
decimal_to_octal(num1)
return "your number in octal: "+''.join(str(v) for v in new_list[::-1])
print(decimal_to_octal(384))