如何在 c++ 中将字符转换为位数组
How to convert char to an array of bits in c++?
我需要将字符串的每个字符作为数组中的位序列获取,或者只是在循环中遍历它,无论哪种方式都有效。这是我以前在ASM中做的事情,不确定如何在c ++中做到这一点。
编辑:我正在尝试复制我用asm所做的工作,读取内存中的文件并一点一点地遍历它,操作每个位,做更多的密码并将其保存回来。
基本上是一个简单的加密。它不是家庭作业,也不是项目。
您可以使用位运算符遍历它:
unsigned char c = 'a'
for(int i = 0; i < 8; i++)
{
std::cout << (c >> i) & 1 << std::endl;
}
这会将c
向右移动i
位置,并使用按位 AND 获取最低有效位的值。
标准库有一个类,std::bitset
.这可能是你需要的。
您需要
使用位掩码和按位运算符&
、|
、>>
和/或<<
进行查找。 我猜你会想将它们存储在布尔类型的数组中,类似于bool bitArray[256];
当然,只使用 unsigned char
来存储一堆位是标准做法。
您可以循环字符并使用位掩码检查位
char c;
for (int i = 0; i < 8; ++i) {
bool is_set = c & (1 << i);
std::out << "Bit " << i << ": " << is_set << 'n';
}
或字符串
std::string s;
for (auto p = s.begin(); p != s.end(); ++p) {
char c = *p;
// loop over the bits
}
相关文章:
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 如何在C++中将数组转换为矢量指针
- 将矢量<T>转换为矢量<数组<T>>
- JSON转换为nlohmann JSON-lib中的结构数组
- 将C++中的数组转换为字符串
- NLOHMANN 的 JSON 库将数组转换为结构向量
- 将 int 数组转换为 std::vector<int*>
- 在nlohmann json中,如何将嵌套对象的数组转换为嵌套结构的向量
- 转换函数,将 std::数组的双精度作为参数或双精度作为参数单独转换
- 将链表转换为指针数组时出错
- 无法在 Arduino 中uint8_t数组转换为无符号长整型数组
- 将字节数组转换为带有字节序问题的指针
- 使用 stbi_write_png,如何将 0 和 1 的矩形字节数组转换为单色 png 文件?
- 将浮点数转换为无符号字符数组并打印出来
- 创建一个函数来转换数组元素的类型并返回数组的地址
- 在 c++ 中动态强制转换 ** 数组
- 返回并强制转换数组指针(错误:数组下标的类型..无效)
- 用于递归模板求值的强制转换数组类型
- node.js中使用node-gyp的转换数组
- 如何转换数组中的参数列表