veo alguna estructura dirección física se define así:¿Por qué la parte alta de la estructura de dirección física se define como tipo con signo?
typedef union {
struct {
ULONG LowPart;
LONG HighPart;
} u;
LONGLONG QuadPart;
} PHYSICAL_ADDRESS;
No entiendo por qué la parte alta se define como el tipo firmado ... ¿Puede alguien dar una explicación?
'LowPart' y' HighPart' son dos mitades de una dirección de 64 bits. Al tratarlo como un entero con signo de 64 bits, solo hay un bit de signo, y está en la parte alta. En la práctica, solo una pequeña fracción del espacio de direcciones completo de 64 bits (16 exabytes) estará disponible. \ –
La mitad del espacio de direcciones son negativos ... ¿así que se desperdician? ¿Por qué no verificar qué operando es más grande antes de hacer la resta para asegurarse de que el resultado sea positivo? ¿La aritmética es la única razón? – solotim
@solotim: los "negativos" no se desperdician. A la CPU no le importa si el puntero es "negativo"; solo ve que se ha establecido el bit alto. – Gabe