请问各位牛人:各种存储单元能表示的范围是怎么算的?
本帖最后由 s0512 于 2013-5-25 15:25 编辑比如:ax的取值范围是怎么算的?al.ah又是怎么算的?我是自学的有的问题就连自已都感觉问得弱弱的请高手不要见怪!{:2_25:}
大家共同学习和进步。
第一个问题 ,ax的取值范围怎么算
我就说下8086cpu,ax是16位的,最小数值 也就是16位全部都是0,最大数值也就是16位全部都是1,也就是0~2的17次方减1
第二个问题 al.ah又是怎么算的?
al,ah是8位,也是同样的方法
最小也就是所有位都是0,也就是0 ,最大值也就是所有值都是1,也就是2的9次方减去1等于511
0~511 熊文杰 发表于 2013-5-22 21:37 static/image/common/back.gif
大家共同学习和进步。
第一个问题 ,ax的取值范围怎么算
我就说下8086cpu,ax是16位的,最小数值 也就是1 ...
"比如说一个8位的char。能够表示的范围是-128~127"哪这个又是怎么算出来的呢? cqsbd_fzb 发表于 2013-5-22 22:14 static/image/common/back.gif
"比如说一个8位的char。能够表示的范围是-128~127"哪这个又是怎么算出来的呢?
这个是有符号位的。有符号位,最高位表示符号。最高位为0表示是正数,最高位为1,表示是负数。
除开符号位,还剩7位
最高位为0时, 7个位全部为1为127,全为0就是0,也就是 0~127
最高位为1时,7个位全部为1时候为-1,全部为0的时候是-128.也就是-128~-1
所以char的取值范围是-128~127 强烈支持楼主ing…… 强烈支持楼主ing…… ax是通用寄存器。是两个字节。即一个字。ax的范围为2^16-1。。。ah和al是ax的高、低位。每个位是8个字节。所以是2^8-1
页:
[1]