tôi thấy một số cấu trúc địa chỉ vật lý được định nghĩa như thế này:Tại sao phần cao của cấu trúc địa chỉ vật lý được định nghĩa là loại đã ký?
typedef union {
struct {
ULONG LowPart;
LONG HighPart;
} u;
LONGLONG QuadPart;
} PHYSICAL_ADDRESS;
Tôi không hiểu tại sao phần cao được định nghĩa là loại ký ... bất cứ ai có thể đưa ra một lời giải thích?
'LowPart' và' HighPart' là hai nửa của địa chỉ 64 bit. Xử lý nó như là một số nguyên 64-bit, chỉ có một bit dấu, và nó ở phần cao. Trong thực tế, chỉ một phần nhỏ của không gian địa chỉ 64-bit đầy đủ (16 exabyte) sẽ khả dụng. \ –
Một nửa không gian địa chỉ là tiêu cực ... vậy chúng có bị lãng phí không? Tại sao không kiểm tra toán hạng nào lớn hơn trước khi bạn trừ để đảm bảo kết quả là dương? Là số học lý do duy nhất? – solotim
@solotim: Các từ "âm" không bị lãng phí. CPU không quan tâm nếu con trỏ là "tiêu cực" - nó chỉ thấy bit cao được thiết lập. – Gabe