-
Notifications
You must be signed in to change notification settings - Fork 0
/
EP1 - Conversão decimal para binário.py
30 lines (26 loc) · 1.48 KB
/
EP1 - Conversão decimal para binário.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
d=float(input()) # numero decimal
dint=int(d) # parte inteira
dfloat=d-dint # parte fracionaria
bn=[] # lista para os numeros
while dint>0:
b=dint%2 # resto da divisao -> numero binario
dint=dint//2 # divisao inteira para o proximo numero
bn.insert(0,b) # insere numero binario no inicio
bn.append('.') # adiciona um ponto para separar a parte inteira da fracionaria
i=0 # variavel para terminar a repeticao
if dfloat!=0: # se a parte fracionaria existir
while i<15: # o numero max de numeros a direita do ponto e 15
dfloat*=2 # multiplica a parte fracionaria por 2
if dfloat>1:
bn.append(1) # parte inteira
dfloat=dfloat-1 # se a parte fracionaria for maior que 1, deve-se subtrair 1
i+=1 # para ir para a proxima casa binaria
elif dfloat==1:
bn.append(1) # se a parte fracionaria for 1, a parte inteira sera 1
i=15 # finaliza a repeticao, pois a parte fracionaria chega a 1
else:
bn.append(0) # se a parte fracionaria for menor que 1, a parte inteira e 0
i+=1 # para ir para a proxima casa binaria
print(*bn,sep="") # imprime numero binario com a parte inteira e fracionaria
else: # se a parte fracionaria nao existir
print(*bn,sep="") # imprime numero binario com a parte inteira