将1左移31位等于多少(1

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a78460750/article/details/52292634

将1左移31位等于多少(1<<31),理想中的答案应该是:


而打印a得到的结果却为:18446744071562067968

unsigned long long a = 1<<32

unsigned long long a = 1<<33

unsigned long long a = 1<<33

          ….

打印结果全为0。

由于编译器将1默认为int类型,将1左移31位时超过了int最长位数,编译器给出一个默认值。想要得到理想中的值需将1强制转换成unsigned long long类型。

没有更多推荐了,返回首页