如何在c ++中使用左移运算符将二进制字符串如“ 010101”加倍[关闭]

问题描述 投票:-2回答:1
可以通过<>轻松地向左或向右移动整数。但是我想知道在C ++中使用<>左右移动二进制字符串的最有效方法。

我正在编写一个接受2个字符串并返回一个字符串的函数,该字符串是xor或and作为参数接受的2个字符串中的一个]]

可以通过<>轻松地向左或向右移动整数。但是我想知道在C ++中使用<>向左或向右移动二进制字符串的最有效方法。我是...

c++ string shift
1个回答
0
投票
这听起来像是最近提出的一个问题。你是这个意思吗?Getting 0x55555555 just using numbers less then 0xFF, | and <<

#include <stdint.h> int main() { uint32_t v1 = 1; // 01 uint32_t v2 = (v1 << 2 ) | v1; // 0101 uint32_t v3 = (v2 << 4 ) | v2; // 01010101 uint32_t v4 = (v3 << 8 ) | v3; // 0101010101010101 uint32_t v5 = (v4 << 16) | v4; // 01010101010101010101010101010101 return 0; }

© www.soinside.com 2019 - 2024. All rights reserved.