前提
计算太复杂不想计算,所以自己想了一种方便、快速的计算方法以字节为单位运算
原理
内存按字节编址
字节单位不变,字节的数值用2进制来运算
1H=1Byte=0b1 Byte
1KB=1024Byte=0b100 0000 0000 Byte
公式=((1H)Byte/1024)KB
1024=1*2^10=0b100 0000 0000
其中数字后面带H为十六进制的缩写,0b为二进制的缩进
同单位下二进制的数值也能进行数值运算(只讨论数值),我举个例子
例:8*10=0b1000*0b1010=0b(1000*1010)=0b101 0000=64+16=80
那把公式转化为: 0b1H/0b10 0000 0000 Byte KB
也就是说把十六进制转换二进制后为后从后面扣去10位0结果就是内存储(单位KB)
不用传统做法把十六转十进制再除以1024计算复杂庞大的数
实战
- 计算所需的内存地址编制:末地址-始地址+1=B13FFH-A1000H+1=10400H
- 十六进制转二进制:0001 0000 0100 0000 0000
- 扣除10位0:100 0001
- 二进制转十进制:64+1=65
- 如果要求多少片就把结果除于单位为K的数值即可,例如至少需要片16K*8bit的芯片,65//16=5
总结
如果旁边没有纸笔的话也可以计算出来,可以通过手指将十六进制转二进制快速计算出来