Если я скажу 64-битную инструкцию, которая имеет 2 байта (16 бит) для кода операции и остаток для адреса операнда, я могу определить, что у меня есть 48 бит для адреса (64-16
). Максимальное значение, которое может отображаться с 48 битами плюс 1 для учета адреса 0, - это мой номер перехода. Это было бы 2^48
. Однако у меня есть проблема с пониманием этого в единицах iB.
2^48
- это 2^40 (TiB) x 2^8 = 256TiB
. Но начиная с TiB = 2^40
БАЙТОВ , когда 2^48
стал БАЙТ ? Я обычно полагал, что для получения количества байтов мне придется разделить на 8, но, похоже, это не так.
Может кто-нибудь объяснить, почему это работает?