. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(CPU工作原理)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  弱弱的问下,寄存器能储存数据最大值问题  [待解决] 回复[ 7次 ]   点击[ 365次 ]  
zhuzaihack
[帖 主]   [ 发表时间:2011-07-29 10:08 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-07-19 09:59
书上说-一个16位寄存器可以储存一个16位数据,那么一个16位寄存器能储存的数据最大值为多少
根据我的理解,一个16位寄存器能储存2byte,所以他能储存数据的范围为0~2byte,所以我认为最大值为2byte
当时我觉得这个问题很傻瓜,书上还提到2次,按理说这样问题不因该被提及2次,于是我怀疑我理解错误,百度一查,发现答案为2^8-1,我就很纠结了,咋会是这个答案,很纠结,很蛋腾,苦想无果后,我决定采用逆推法,我通过答案推思路
然后我发现,在我的理解下,当一个16寄存器一次可以传送16位数据时,答案就是2^8-1
当一个16寄存器一次可以传送16位数据时,那么他的数据组合有2^8个形态,由储存单元都是由0开始排列,所以在这种情况下,他能储存的数据范围为0~(2^8-1),求得是最大值,所以才有2^8-1这个答案.
但是我这个人有点爱钻牛角尖,所以希望大家能不惜指点下我,为啥我第一个想法错了
zhuzaihack
[第1楼]   [ 回复时间:2011-07-29 10:25 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-07-19 09:59
数据打错了,上面全部2^8都是2^16
xingchenlieren
[第2楼]   [ 回复时间:2011-07-30 01:18 ]   [引用]   [回复]   [ top ] 
荣誉值:3
信誉值:0
注册日期:2011-07-19 17:31
“一个16位寄存器能储存2byte,所以他能储存数据的范围为0~2byte”这句话错了。
能存储2byte个,但你说的范围是0~2byte有2byte+1个。应该是0~2byte-1。
liash
[第3楼]   [ 回复时间:2011-07-30 08:33 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-07-29 21:21
1111 1111 1111 1111  =  1 0000 0000 0000 0000 = 2^16 - 1
liash
[第4楼]   [ 回复时间:2011-07-30 08:34 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-07-29 21:21
1111 1111 1111 1111  =  1 0000 0000 0000 0000 - 1 = 2^16 - 1 
漏了一个 -1
chinatree
[第5楼]   [ 回复时间:2011-07-30 11:02 ]   [引用]   [回复]   [ top ] 
荣誉值:118
信誉值:0
注册日期:2011-07-07 22:59
16位寄存器能表示65536个数字,是从0到65535,明白了吗?零也算的
minidxer
[第6楼]   [ 回复时间:2011-08-22 23:10 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-08-18 06:18
十六位寄存器 能存储2个字节的数据 即:16bit(位)  1byte(字节)=8bit(位) 

最小  0000 0000 0000 0000   (全0)
最大  1111 1111 1111 1111   (全1)

1111 1111 1111 1111 转换成十进制是 65535 也就是2的16次方减1
redhat0921
[第7楼]   [ 回复时间:2011-10-16 12:08 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-10-15 20:24
当然是2^16-1了,2进制转换成10进制就是2^16,又因为外国是从0开始数,所以要-1
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved