如何读取和重置字符位

how can I read and reset bits of char?

本文关键字:字符 何读取 读取      更新时间:2023-10-16

我有一个项目要在c++中用128KB 的虚拟内存做汇编程序和模拟器

我只是想知道如何将char转换为它的相应位?

如何重置char类型的位?

您需要了解目标系统的端序。C和C++不同地定义CCD_ 1的宽度;你需要确保你正在通过正确的偏移量。然后,它只是一个简单的问题,测试每个位偏移相对于一个位掩码。这是我的一个旧代码审查问题中的一些代码;修改为:

#include <stdio.h>
char set_bit(const char x, const char offset, const int value) {
    return value ? x | (1 << offset) : x & ~(1 << offset);
}
char get_bit(const char x, const char offset) {
    return (x & (1 << offset)) != 0;
}
int main(void) {
    int max = sizeof(char) * 8 - 1;
    char x = 0;
    int count;
    for (count = 0; count < max; count += 2)
        x = set_bit(x, count, 1);
    for (count = max; count >= 0; count--)
        printf("%d ", (int) get_bit(x, count));
    printf("n");
    return 0;
}

输出:

$ g++ main.cpp -o main && ./main
0 1 0 1 0 1 0 1