Advertisement
JorgeJunior-CODES

end

Feb 3rd, 2020
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.30 KB | None | 0 0
  1.  
  2. # decimal para binario
  3. def dec2bin(num):
  4. toNum = power = 0
  5. while num > 0:
  6. # variavel acumulativa do calculo de 10 na potencia de POWER vezes o resto da divisão de NUM por 2
  7. toNum += 10 ** power * (num % 2)
  8. num = num // 2 #resto da divisão inteira divido por 2
  9. power += 1 #soma +1 na váriavel
  10. return toNum
  11.  
  12. #binario para decimal
  13. def bin2dec(num):
  14. toNum = power = 0
  15. while num > 0:
  16. # variavel acumulativa do calculo de 10 na potencia de POWER vezes o resto da divisão de NUM por 10
  17. toNum += 2 ** power * (num % 10)
  18. num = num // 10#resto da divisão inteira divido por 10
  19. power += 1 #soma +1 na váriavel
  20. return toNum
  21.  
  22. #decimal para hexadecimal
  23. def dec2hex(num):
  24. caracteres = [0,1,2,3,4,5,6,7,8,9,"A","B","C","D","E","F"] #caracteres hexadecimal
  25. hexadecimal = []
  26. while num > 0:
  27. #insere no inicio da lista um caractere correspondente ao
  28. #calculo do resto da divisão de NUM pela base 16
  29. hexadecimal.insert(0, caracteres[(num % 16)])
  30. #o novo valor de NUM será o inteiro da divisão de NUM por 16
  31. num = num // 16
  32. return hexadecimal
  33.  
  34. #hexadecimal para decimal
  35. def hex2dec(num):
  36. ret = 0
  37. for i,d in enumerate(num) :
  38. hexadecimal = "0123456789ABCDEF"
  39. value = hexadecimal.index(d) # de 0 a 15
  40. power = (len(num) -(i+1)) #power é igual ao tamanho da variavel - (indice de i + 1) = 16
  41. ret += (value * 16 ** power) #value multiplicado por 16 elevado a power
  42. return ret
  43.  
  44. #binario para octal
  45. def bin2oct(num):
  46. toNum = power = 0
  47. num = bin2dec(num)
  48. while num > 0:
  49. # variavel acumulativa do calculo de 10 na potencia de POWER vezes o resto da divisão de NUM por 2
  50. toNum += 10 ** power * (num % 8)
  51. num = num // 8 #resto da divisão inteira divido por 2
  52. power += 1 #soma +1 na váriavel
  53. return toNum
  54.  
  55. #octal para binario
  56. def oct2bin(num):
  57. noct = ['0', '1', '2', '3', '4', '5', '6', '7']
  58. bin= ['000', '001', '010', '011', '100', '101', '110']
  59. oct = list(n1)
  60. resultado = []
  61. t = ''
  62. for i in oct:
  63. resultado.append(bin[noct.index(i)]
  64.  
  65. for c in resultado:
  66. t += c
  67. return t
  68.  
  69.  
  70. #binario para hexadecimal
  71. def bin2hex(num):
  72. #reutilização de funções já criadas
  73. num = dec2hex(bin2dec(num)) #utiliza a função de conversão de bin para decimal
  74. return num
  75.  
  76. #hexadecimal para binario
  77. def hex2bin(num):
  78. num = dec2bin(hex2dec(num))
  79. return num
  80.  
  81.  
  82. opcao = -1
  83. while opcao != 9:
  84. print("1 - Converter um número decimal para binário");
  85. print("2 - Converter um número binário para decimal");
  86. print("3 - Converter um número decimal para hexadecimal");
  87. print("4 - Converter um número hexadecimal para decimal");
  88. print("5 - Converter um número binário para octal");
  89. print("6 - Converter um número octal para binário");
  90. print("7 - Converter um número binário para hexadecimal");
  91. print("8 - Converter um número hexadecimal para binário");
  92. print("9 - Encerrar o programa");
  93. opcao = int(input("Informe a opção escolhida: "))
  94.  
  95. if(opcao >= 1 and opcao <= 8):
  96. if((opcao >= 1 and opcao <= 3) or (opcao >= 5 and opcao <= 7)):
  97. num = eval(input("Informe o número para a conversão: "))
  98. if(opcao == 1):
  99. print("Resultado:", dec2bin(num))
  100. elif(opcao == 2):
  101. print("Resultado:", bin2dec(num))
  102. elif(opcao == 3):
  103. #imprime todos valores separando sem espaços
  104. print("Resultado:", *dec2hex(num), sep="")
  105. elif(opcao == 5):
  106. print("Resultado:", bin2oct(num))
  107. elif(opcao == 6):
  108. print("Resultado:", oct2bin(num))
  109. elif(opcao == 7):
  110. print("Resultado:", *bin2hex(num), sep="")
  111. elif(opcao == 4 or opcao == 8):
  112. num = str(input("Informe o número para a conversão: "))
  113. if(opcao == 4):
  114. print("Resultado:", hex2dec(num))
  115. elif(opcao == 8):
  116. print("Resultado:", hex2bin(num))
  117. elif(opcao < 1 or opcao > 9):
  118. print("Informe uma opção válida.")
  119. else:
  120. print("Programa finalizado com sucesso.")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement