Firmado en unsigned para registros

1

Acabo de comenzar a programar un código en los niveles inferiores.

Me han dicho que cambie los enteros con signo por enteros sin signo y que los almacene en los registros HW. He hecho esto bien, pero me pregunto por qué necesito hacer eso. ¿Qué pasaría si tuviera un entero con signo de 32 bits? ¿Cómo manejaría eso?

Los valores serán utilizados por el propio HW a veces, pero también por SW. Cuando SW los usa, los vuelvo a convertir.

Todos los registros HW tienen un tamaño de 32 bits.

    
pregunta user1876942

1 respuesta

4

Cuando almacena un valor en un registro de hardware, está almacenando la representación de bits de ese valor en el registro. El efecto que tendrá está completamente definido por el registro particular.

En muchos casos, los registros de hardware contienen un valor sin signo (contadores, (pre) escaladores, resultados A / D) o un conjunto de campos de bits. En general, es más fácil trabajar con valores sin firmar.

Ocasionalmente encontrará un registro que tiene sus bits en una forma de complemento a 2s (fi. en un convertidor A / D con una entrada diferencial), en ese caso será más apropiado cargarlo desde o hacia un dispositivo firmado. variable.

    
respondido por el Wouter van Ooijen

Lea otras preguntas en las etiquetas