在C语言中,关于位的运算总是迷迷糊糊的,希望大佬可以指点迷津,非常感谢!
问题:
在int中,因为是32位,所以最大值为2147483647,但是这个最大值是怎么算的呢?
经过我的一番百度后,发现这个是2的31次方减1,理解了他的意思,但是这如果表示成一个二进制的数的话,一个1后面有31个0,但是既然是储存单位的话,不应该是32个1嘛,这样才是最大值的呀!
来个大佬可怜可怜孩子吧
例如,在C语言中,对于int是4 bytes的计算机来说,int的最大值为2147483647,
也就是2的31次方减1,但是在计算机运算中,却可以超过这样的一个值,具体示例
如下:

结果如下:

而对于直接使用输出函数的输出,则会发生错误值
int只有32位,但是在运算过程中,超过了32位,怎么保存的呢?例如在本例中Mx是怎么储存的
这是怎么回事呢?

结果为
