1位 = 1比特,即一位二进制数,能够表示为0或1。spa
1字节( byte,简写B ) = 8位( bit )code
\(1KB = 2^{10}B\)内存
\(1MB = 2^{10}KB = 2^{20}B\)it
\(1GB = 2^{10}MB = 2^{20}KB = 2^{30}B\)table
对于字长为8位的计算机,1字 = 1字节。对于字长为16位的计算机,1字 = 2字节。32位和64位同理,再也不赘述。class
1字节有8位二进制数,范围是 0000 0000
到 1111 1111
,换算为16进制则是 0x00
到 0xFF
,也就是说,两位16进制数便是1个字节。二进制
假设有一个4字节数据为0x12 34 56 78
,其中0x12
是高字节,0x78
是低字节(这里不理解能够想一想十进制,对于一个十进制数(如21),十位是高字节,个位是低字节),将其存放于地址0x4000 8000
中,则:数据
内存地址 | 0x4000 8000(低地址) | 0x4000 8001 | 0x4000 8002 | 0x4000 8003(高地址) |
---|---|---|---|---|
大端(大尾) | 0x12(高字节) | 0x34 | 0x56 | 0x78(低字节) |
小端(小尾) | 0x78(低字节) | 0x56 | 0x34 | 0x12(高字节) |
大小端还有另外一种说法是大小尾,也就是尾部的大小,这样说更加容易让人理解。计算机
计算机中传输地址信息是用地址线传输的,有n根地址线,则能够传输 \(2^n\) 字节地址。tab
设有一个1MB
容量的存储器,字长为32位
,问:
按字节编址须要多少条地址线?寻址范围是多少?寻址范围大小是多少?
\(1MB\) = \(2^{20}B\)
1B
即为1字节
,所以须要 20 根地址线。寻址范围是 \(0\) 到\(2^{20}-1\)。寻址范围大小是\(2^{20} = 1M\)。
按字编制须要多少条地址线?寻址范围是多少?寻址范围大小是多少?
\(1MB\) = \(2^{20}B\)
1字 = 32位 = 4字节 = 4B
\(\frac{2^{20}}{2^2} = 2^{18}\)
所以须要18根地址线。寻址范围是 \(0\) 到\(2^{18}-1\)。寻址范围大小是\(2^{18} = 1M\)。