书上说:“若在程序中定义了一个变量,C编译系统就会根据定义的变量的类型,为其分配一定字节数的内存空间,如:整型占2字节”
问:如果我定义的一个int型变量为123,那岂不是占用3个字节了么?它这里说的占用2个字节该怎么理解?
我只说一个字:晕!
不是一个权占一个字节,而是用二进制表示的,你看看123用二进制表示是几位!
111011啊?
这怎么了?
这不是占了6位么?
我就问一下占2个字节怎么理解?
晕,你当123是3个字符啊?!
int的范围是两个字节,因为一个字节在十六进制中最大只能是FF 换成十进制就是255 那么int是两个字节,能表达的范围也就是255*255=65535个数字 123算什么东西,竟然想占领3个字节?!
123在内存中是这样存储的: [123] [0] 大过255的就要往前进一,所以258=2+256在内存中是这样存储的[2] [1]
也就是说,到了255才算是一个数字?
而123连255分之1个字节都不占?
神:
关于这方面的知识在哪本书上有?给我介绍一下。我的3本教材上都没讲到!
这个,这个,说出来不好意思.我是自己理解的.
当初我发现65535开方就是255,而且int只占2个字节,我就基本明白是怎么一回事了. 而且我还发现,0~255的放在前地址,0~65535每逢256就进位,进了多少位放在后地址
所以258 在内存中摆放位置为[2] [1]
对了,这里的255是十进制,还是二进制,还是其他进制?
十进制的,占2个字节,在计算机里是按2进制放的啊
就是两个字节表示的最大的数(无符号)
两个字节不是1111111111111111么???
那你看看这个二进制表示是多少!!!65535这就是整数型能表示的最大值,123应该是:1111011它七位,不到一个字
节。我说的是int 型,切记切记!!!
神啊,你怎么混的这个也说不明白!!!