如何设置,在C/C++中清除一个长整型数
How to set, clear a bit of a long long int number in C/C++?
我想在64位机器上设置long long int
数字中的位。例如,我想在元素18 19处设置位,我使用以下代码:
A1 |= 1 << 2 * i; // i = 9 , set bit 18 =1, A1 long long int
A1 &= ~(1 << 2 * i + 1); //clear bit 19 = 0
但它不起作用。如果我为long int
这样做,效果会很好。
文字1
的类型为int
,可能小于long long
。如果偏移足够的位使int
类型溢出,则会得到未定义的行为(通常为零值);并且第二行将(可能)清除CCD_ 7中存在但不清除int
值中存在的任何位。
使用1LL
指定long long
类型,或使用decltype(A1)(1)
指定与A1
匹配的类型。
通常,最好使用无符号类型(在这种情况下可能是unsigned long long
或uint64_t
)进行位争用。使用1ULL
获取类型为unsigned long long
的文字。
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 运行同一解决方案的另一个项目的项目
- 挂起和取消挂起一个文件DLL
- 用C++中的一个变量定义一个常量
- 函数向量_指针有不同的原型,我可以构建一个吗
- 我正在声明一个自定义优先级队列,包括 pair<pair<int,int>int >,如何清除它?
- 为什么initializer_list不在一个类中清除一个"const std::initializer_list & li"?
- 如何设置,在C/C++中清除一个长整型数
- c++linux控制台清除屏幕的一个区域
- 通过按 Enter 完成编辑时更改或清除 QLineEdit 上的焦点,并在 Qt 中仅发送一个信号
- 当用户输入错误输入时,一次清除 cin 中的整行而不是一个字符
- 我应该清除作为参数传入的()容器,还是交换一个新对象
- 如何通过程序清除一个站点的IE缓存
- 清除一个字符数组的最佳方案-是否为memset
- 被调用的函数清除前一个函数的更改
- 被调用的函数清除前一个函数的更改
- 屏幕没有清除最后一个文本为什么?
- 清除向量并让一个向量等于另一个向量