Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """(0.00876545)d
- convirtiendo a binario (12 cifras significativas)
- 0.00876545 x 2 = 0.004382725
- 0.00438272 x 2 = 0.00876544
- 0.00876544 x 2 = 0.01753088
- 0.01753088 x 2 = 0.03506176
- 0.03506176 x 2 = 0.07012352
- 0.14024704 x 2 = 0.28049408
- 0.56098816 x 2 = 1.12197632
- 0.12197632 x 2 = 0.24395264
- 0.48790528 x 2 = 0.97581056
- 0.97581056 x 2 = 1.95162112
- 0.95162112 x 2 = 1.90324224
- 0.90324224 x 2 = 1.80648448
- (0.00876545)d = (0000 0010 0111)b = 0.000000100111*2E0
- Normalizando
- (0.00876545)d = 0.000000100111*2E0 = 0.100111E-6
- exponente = -6 + 1024 = (1018)d = (11 1111 1010)b
- llenando el formato
- signo(1) exponente(11) fraccion (36)
- 0 011 1111 1010 100111000000000000000000000000000000
- ------------------------------------------------------------------------
- (-0.00876545)d
- convirtiendo a binario (12 cifras significativas)
- 0.00876545 x 2 = 0.004382725
- 0.00438272 x 2 = 0.00876544
- 0.00876544 x 2 = 0.01753088
- 0.01753088 x 2 = 0.03506176
- 0.03506176 x 2 = 0.07012352
- 0.14024704 x 2 = 0.28049408
- 0.56098816 x 2 = 1.12197632
- 0.12197632 x 2 = 0.24395264
- 0.48790528 x 2 = 0.97581056
- 0.97581056 x 2 = 1.95162112
- 0.95162112 x 2 = 1.90324224
- 0.90324224 x 2 = 1.80648448
- (0.00876545)d = (0000 0010 0111)b = 0.000000100111*2E0
- Normalizando
- (0.00876545)d = 0.000000100111*2E0 = 0.100111E-6
- exponente = -6 + 1024 = (1018)d = (11 1111 1010)b
- llenando el formato
- signo(1) exponente(11) fraccion (36) (48 bits)
- 1 011 1111 1010 100111000000000000000000000000000000
- -------------------------------------------------------------------------
- (256.0876545)d
- convirtiendo a binario (12 cifras significativas)
- Parte entera Parte fraccionaria
- 256 % 2 = 0 0.0876545 x 2 = 0.175309
- 128 % 2 = 0 0.175309 x 2 = 0.350618
- 64 % 2 = 0 0.350618 x 2 = 0.701236
- 32 % 2 = 0 0.701236 x 2 = 1.402472
- 16 % 2 = 0 0..402472 x 2 = 0.804944
- 8 % 2 = 0 0.804944 x 2 = 1.609888
- 4 % 2 = 0 0.609888 x 2 = 1.219776
- 2 % 2 = 0 0.219776 x 2 = 0.439552
- 1 % 2 = 1 0.439552 x 2 = 0.879104
- 0.879104 x 2 = 1.758208
- 0.758208 x 2 = 1.516416
- 0.516416 x 2 = 1.032832
- (256.0876545)d = (1 0000 0000 . 0001 0110 0111)b = 1 0000 0000 . 0001 0110 0111 x 2E0
- Normalizando
- (256.0876545)d = (1 0000 0000 . 0001 0110 0111)b = .1 0000 0000 0001 0110 0111 x 2E9
- exponente = 9 + 1024 = (1033)d = (100 0000 1001)b
- llenando el formato
- signo(1) exponente(11) fraccion (36)
- 0 100 0000 1001 100000000000101100111000000000000000
- """
- ###//////////////////////////// py
- # abriendo y cerrando archivo de manera automatica
- with open("datos.txt") as archivo:
- # leer los datos y guardar en lista
- lista = list(archivo)
- # elimina los saltos de linea
- datos = [s.strip() for s in lista]
- def a_binario(numero):
- binario = 0
- decimal = numero
- i = 0
- while decimal > 0:
- digito = decimal % 2
- decimal = int(decimal // 2)
- binario = binario + digito * (10**i)
- i = i + 1
- return str(binario).zfill(24)
- def comp_2(binario):
- binario = str(binario)
- # se hace complemento a 1 con auxiliar y se suma 1
- bin_2 = binario.replace("1", "a")
- bin_2 = bin_2.replace("0", "1")
- bin_2 = bin_2.replace("a", "0")
- return int(bin_2, 2) + 1
- # Detecta si el dato es positivo, negativo o string recorriendo cada dato en la lista
- for x in datos:
- ##### numero positivo
- if x.isnumeric():
- x = int(x)
- binario = a_binario(x)
- print(
- "DEC: " + str(x)
- + " BIN: " + str(binario)
- + " HEX: {0:0>6X}\n".format(int(binario, 2))
- )
- # 0:X formatea en hex y el 0>6 la long final del hex. int(dato, base)
- ##### numero negativo
- # Detecta si la cadena empieza con '-' y lo elimina de la cadena
- elif x.startswith("-"):
- y = x.lstrip("-")
- y = int(y)
- binario = a_binario(y)
- bin2 = comp_2(binario)
- print(
- "DEC: " + str(x)
- + " {0:b} ".format(bin2)
- + " HEX: {0:0>6X}\n".format(bin2)
- )
- ##### cadena
- else:
- hexa = x.encode("ascii")
- hexa = hexa.hex()
- hexa = str(hexa.upper())
- print("input: " + str(x) + " rep: " + hexa + "\n")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement