[求助]32768赋为int unsigned char和signed char型变量,赋值后它在内存中的存储形
将-32769和32769分别赋为int unsigned char和signed char型变量,赋值后它们在内存中存储的二进制是什么样的?怎么算出的 麻烦讲解一下32769超出了int的范围 将怎么在内存中存储?
若要以%d形式输出会输出什么?以%c呢?
刚刚学 不明白 希望学过的能说一下其中的转换过程 谢谢!
只举一个例子32769
32769转换为二进制数为1000000000000001(共十六位),即为其原码,由于是正数,存在内在中的时候就会原样放入
用%d输出的时候,就会去读取内存,由于最高位是1,就会认为是负数,会将其转换为相应的原码(减1再取反)
也就是0111111111111111,再转换为十进制数就是32767,由于是负数,就会输出-32767.如果用%ld输出,不同的编译器会得到不同的结果,这个地方就不说了
谢谢
知道了 那如果一个足够大的数 99999999转换为2进制 超过16位 但把他定义为INT型时 是截取前16位还是后16位
应该会截取低八位输出.