Jensen 发表于 2012-4-9 17:49:53

求助

一个16位的寄存器所能存储的数据最大值为多少 为什么2的16次方在减去一呢?我有点不懂?教程里面这听不懂

梦想与现实 发表于 2012-4-9 17:49:54

首先你要知道 一个16位的寄存器最大就是FFFF也就是2的16次-1等于十进制的65535

至于为什么-1
你这样看啊,2的16次方等于65536,然后计算机都是从0开始的,好的,现在你假象一下从0开始在纸上写出每一个数字,一直写到65536,然后你数一下你一共写了多少个数呢,应该是65537个,因为你是从0开始的,如果从1开始就应该正好是65536个!所以如果你想要写出来正好的65536个数字呢,就要减去1,因为0也算一个数字!
综上所述:2的16次-1(从0开始)等于十进制的65535,正好对应(从1开始)的65535!
不知道说了这么多 你明白了吗?
不管怎样,希望可以帮到你!{:5_95:}

小青年 发表于 2012-4-9 19:24:09

16位是0到15全部为1最大就是2的16次方-1

梦想与现实 发表于 2012-4-9 19:52:01

本帖最后由 梦想与现实 于 2012-4-9 19:54 编辑

最大是16个1就是FFFF也就是2的16次-1等于十进制的65535,也就是64KB(64K=65536)!
至于为什么-1,那是因为计算机是以0开头的,而不是我们所习惯的从1开头!
例如:
(我们习惯的方式):1~10=10个数字
(计算机习惯的方式):0~9=10个数字
不知道这样算不算回答了你的问题呢?{:5_108:}

单飞鸟 发表于 2012-4-10 00:14:09

1111111111111111   这16位二进制数加上1后,变成了10000000000000000,也就是2的16次方,在减去刚刚加的1,也就是2的16次方减1了

左弦 发表于 2012-4-10 09:16:02

就像十进制数,每位最大的是9...是10-1,加上前面的0,刚好十个数,16位寄存器,从0到2的16次方减1,刚好2的16次方个,够形象了吧?

Jensen 发表于 2012-4-10 20:13:37

还是有点似懂非懂的 能在详细点吗?

Jensen 发表于 2012-4-10 22:41:14

梦想与现实 发表于 2012-4-10 20:34 static/image/common/back.gif
首先你要知道 一个16位的寄存器最大就是FFFF也就是2的16次-1等于十进制的65535

至于为什么-1


懂了,谢谢!

key2046 发表于 2017-1-10 17:52:44

16位是0到15  全部为1最大  就是2的16次方-1
页: [1]
查看完整版本: 求助