Puede alguien explicar por qué hacer una U operación de un número binario con 0x0030 como operando produce el carácter ASCII de ese número?
- Entiendo por qué restar 0x0030 obras.
Puede alguien explicar por qué hacer una U operación de un número binario con 0x0030 como operando produce el carácter ASCII de ese número?
Ya que buscando en la tabla ASCII, los dígitos del 0 al nueve en 0x30. Por lo tanto el valor ASCII para el carácter 1? 0x30 o 0x01 = 0x31 = valor ASCII para el número 1.
Si te refieres a los números 0 a 9, la razón es que
0x30
(48) es el código ASCII del número 0. Desde 48 sólo requiere de bits en la mayor (a la izquierda) lado de un byte, ORing con cualquier número menor de 16 años (menores de bits) es el mismo que matemáticamente la adición de los números.Así 0x30 O 0x01 dará 0x31, el código ASCII del carácter ‘1’, y así sucesivamente.
Vistazo a la representación binaria de un solo dígito: por ejemplo, 2d = 00000010b. Aplicar una operación con 0x30 (00110000b de la misma. Esto se traduce en 00110010b que es 0x32, o 50d que es el ASCII código ‘2’. Efectivamente, en este caso (ya que no hay ningún lleva a considerar) el O la operación es igual a la adición de 0x30.