Преобразование десятичной дроби в гекса - как мне сделать ее короче? - PullRequest
0 голосов
/ 27 сентября 2019

Я написал код, который должен конвертировать целые числа в шестнадцатеричные.Это школьная домашняя работа.Я написал довольно много, после этого мой друг показал мне свой код, который намного короче, поэтому я хотел бы знать, где я слишком усложняю вещи, и где я могу что-то вырезать.Как примечание, я изучаю уже 2 месяца, поэтому, пожалуйста, будьте спокойны со мной:)!

Хорошо, я проверил свой код, но я не смог найти ничего, что я мог бы удалить или упростить.

       def Exponent2():                    # which exponent I need to 
                                                           devide with
       global Exponent
       Exponent = 0
       while True:
             a = dezimal // 16**Exponent
             Exponent = Exponent + 1
             if a == 0:
             Exponent = Exponent - 1
             break

        Exponent2()
        Ergebnis = ''
        Dezimal2 = dezimal
        while Dezimal2 != 0:
            dezimal = Dezimal2 // 16**Exponent
            Dezimal2 = Dezimal2 % 16**Exponent
            CheckReverse()
            Ergebnis = Ergebnis + str(dezimal)
            Exponent = Exponent - 1

        Länge = len(Ergebnis)
        Ergebnis = Ergebnis[1:Länge]
        print(Ergebnis)

1 Ответ

0 голосов
/ 27 сентября 2019

Похоже, вы нашли наибольший показатель x, где вы можете разделить число на 16**x.Вместо этого вы можете начать с наименьшего показателя, на который вы можете разделить.Другими словами, если вы просто поделите на 16, то получите одну цифру, а затем снова поделите на 16, чтобы получить следующую шестнадцатеричную цифру.

...