为什么对于long int数据类型不左移<<超过31?

胡安·约翰·马修斯

我想在程序中使用以下代码,但gcc不允许我将1移到31以外。

sizeof(long int) 显示8,这是否意味着我可以左移至63?

#include <iostream>

using namespace std;

int main(){
    long int x;
    x=(~0 & ~(1<<63));
    cout<<x<<endl;
    return 0;
}

编译输出以下警告:

left shift `count >= width` of type [enabled by default] `x=(~0 & ~(1<<63))`;
                                                                    ^

输出为-1。如果我左移了31位,则会得到2147483647的整数预期值。

我期望除MSB之外的所有位都打开,从而显示数据类型可以容纳的最大值。

陆迁格里戈尔

尽管您x的类型是long int,但1不是。1int,因此1<<63确实是未定义的。

试试看(static_cast<long int>(1) << 63),或1L << 63按照Wojtek的建议。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么对于long int数据类型不左移<< <<移到31以上呢?

来自分类Dev

为什么返回Windows BOOL数据类型而不返回int?

来自分类Dev

为什么对于f(long),f(double)比f(long,int = 0)更好的匹配?

来自分类Dev

long long数据类型的意外左移修改了看似无关的变量

来自分类Dev

为什么使用“ int”数据类型而不是“ float”数据类型?

来自分类Dev

为什么有人使用int数据类型?

来自分类Dev

对于Java中的这种情况,为什么原始数据类型比参考数据类型消耗更多的内存?

来自分类Dev

对于Java中的这种情况,为什么原始数据类型比参考数据类型消耗更多的内存?

来自分类Dev

为什么不能使用long long int类型?C ++

来自分类Dev

为什么不能使用long long int类型?C ++

来自分类Dev

为什么在Oracle中对LONG数据类型有如此多的限制

来自分类Dev

数据类型字符声明(0.05D)为什么声明后D不冗余?

来自分类Dev

为什么在此Haskell代码中不传递数据类型?

来自分类Dev

为什么undefined是数据类型

来自分类Dev

为什么undefined是数据类型

来自分类Dev

为什么方案没有原始的c数据类型,例如int,float等

来自分类Dev

Laravel为什么说“将nvarchar值'[]'转换为数据类型int时转换失败”

来自分类Dev

为什么将varchar值“ This is full”转换为数据类型int时转换失败?

来自分类Dev

Laravel为什么说“将nvarchar值'[]'转换为数据类型int时转换失败”

来自分类Dev

为什么有人会使用 int 而不是 bool 数据类型?

来自分类Dev

SQL Server int 和 MS Access VBA long 数据类型之间的数据类型转换错误

来自分类Dev

为什么Int类型2 ^ 31没有超出GHCi的范围?

来自分类Dev

将数据类型从int更改为long long int时发生运行时错误

来自分类Dev

MIPS和$ 31,无法理解为什么数据存储在寄存器$ 31中

来自分类Dev

为什么sumBy(selector)不返回Long?

来自分类Dev

为什么short原语类型比long或int慢得多?

来自分类Dev

为什么short原语类型比long或int显着慢?

来自分类Dev

超过C ++最大的整数数据类型

来自分类Dev

超过C ++最大的整数数据类型

Related 相关文章

  1. 1

    为什么对于long int数据类型不左移<< <<移到31以上呢?

  2. 2

    为什么返回Windows BOOL数据类型而不返回int?

  3. 3

    为什么对于f(long),f(double)比f(long,int = 0)更好的匹配?

  4. 4

    long long数据类型的意外左移修改了看似无关的变量

  5. 5

    为什么使用“ int”数据类型而不是“ float”数据类型?

  6. 6

    为什么有人使用int数据类型?

  7. 7

    对于Java中的这种情况,为什么原始数据类型比参考数据类型消耗更多的内存?

  8. 8

    对于Java中的这种情况,为什么原始数据类型比参考数据类型消耗更多的内存?

  9. 9

    为什么不能使用long long int类型?C ++

  10. 10

    为什么不能使用long long int类型?C ++

  11. 11

    为什么在Oracle中对LONG数据类型有如此多的限制

  12. 12

    数据类型字符声明(0.05D)为什么声明后D不冗余?

  13. 13

    为什么在此Haskell代码中不传递数据类型?

  14. 14

    为什么undefined是数据类型

  15. 15

    为什么undefined是数据类型

  16. 16

    为什么方案没有原始的c数据类型,例如int,float等

  17. 17

    Laravel为什么说“将nvarchar值'[]'转换为数据类型int时转换失败”

  18. 18

    为什么将varchar值“ This is full”转换为数据类型int时转换失败?

  19. 19

    Laravel为什么说“将nvarchar值'[]'转换为数据类型int时转换失败”

  20. 20

    为什么有人会使用 int 而不是 bool 数据类型?

  21. 21

    SQL Server int 和 MS Access VBA long 数据类型之间的数据类型转换错误

  22. 22

    为什么Int类型2 ^ 31没有超出GHCi的范围?

  23. 23

    将数据类型从int更改为long long int时发生运行时错误

  24. 24

    MIPS和$ 31,无法理解为什么数据存储在寄存器$ 31中

  25. 25

    为什么sumBy(selector)不返回Long?

  26. 26

    为什么short原语类型比long或int慢得多?

  27. 27

    为什么short原语类型比long或int显着慢?

  28. 28

    超过C ++最大的整数数据类型

  29. 29

    超过C ++最大的整数数据类型

热门标签

归档