简单的说就是:
前者总共有32个格子,每个格子可以有两种情况,
后者总共只有4个格子,每个格子有十种情况(0到9),
一个是2的32次方,一个是10的4次方,你把底数和幂数都换了,结果肯定不一样。
前者的其实也就是计算机里的二进制,后者的思维变成了我们所日常使用的十进制。
具体点说就是:
ascii码中包含256个字符,包括数字和英文字母、符号等,数字只占其中的10个(0到9)。
那么为什么ascii可以表示那么多字符呢?
你应该知道的(不知道就没办法了),一个ascii码占一个字节,而一个字节有八个比特位。
每个比特位只有两种情况,0和1,那么8个比特位组合起来,就应该是:
2 X 2 X 2 X 2 X 2 X 2 X 2 X 2 = 2的8次方 = 256
也就是8个比特位总共能表示256种情况,如果把这256种情况分别全用来表示数字的话,就可以表示0到255这256个数字。
好,这个如果你理解了,那么理解int就容易了,int有4个字节,这是前提你也知道。
前面解释了,一个字节可以表示256种情况,那么4个字节按照前面的算法就为:
256 X 256 X 256 X 256 = 2的8次方 X 2的8次方 X 2的8次方 X 2的8次方 = 4 294 967 296
也就是4个字节可以表示 4 294 967 296 种情况,如果一种情况用来表示一个数字,那么就可以用来表示 0到4 294 967 295 了。
你前后属于偷换概念了,你后面把问题变成了:
10 10 10 * 10 = 10 的4次方 = 10000
结果当然只能表示4位数了。