int a = 2;
for(int i = 0; i < 100; i++)
{
a *= 2;
}
a最终是0
可以看这段代码
#include "stdio.h"
int main()
{
int a = 1 << 31;
printf("a is:%d\na << 1 is %d\n", a, a << 1);
return 0;
}
C对越界的处理就是直接舍弃
同时要注意,有符号数的最高位为符号位
int a = 2;
for(int i = 0; i < 100; i++)
{
a *= 2;
}
a最终是0
可以看这段代码
#include "stdio.h"
int main()
{
int a = 1 << 31;
printf("a is:%d\na << 1 is %d\n", a, a << 1);
return 0;
}
C对越界的处理就是直接舍弃
同时要注意,有符号数的最高位为符号位