c++ - 如何创建一个(f)16重复n次的数字?

标签 c++ bit-manipulation 64-bit bitmask

我需要创建一个(f)16重复n次的数字。 0 我为n = 16尝试了以下示例

std::cout << "hi:" << std::hex << std::showbase << (1ULL << 64) - 1 << std::endl;

warning: shift count >= width of type [-Wshift-count-overflow] std::cout << "hi:" << std::hex << std::showbase << (1ULL << 64) - 1 << std::endl; ^ ~~ 1 warning generated.

hi:0x200


如何在不溢出f的情况下获取所有数字ULL

最佳答案

对于n = 1到16,您可以从所有F开始,然后相应地移动:

0xFFFFFFFFFFFFFFFFULL >> (4*(16-n));
(分别处理n = 0)

关于c++ - 如何创建一个(f)16重复n次的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64156328/

相关文章:

C++ vector 打印出奇怪的元素

c++ - 如何在模板类函数中分配结构值?

javascript - 如何有效地从字节中读取位?

c - 如何在 C 中使用 #define 语句对类型为 `float` 的变量执行字节交换?

linux - 迷失在组装 NASM ELF64 世界

c - x86_64 ASM - 指令的最大字节数?

c++ 强制 std::cout 刷新(打印到屏幕)

c++ - 将元素从 std::vector 移动到另一个

algorithm - 给定二进制字符串中不同数字的数量及其总和

java - 64 位 java 上的 JMF?