c - 从 C 语言中的 C 风格字符串获取位序列?

标签 c hash

我需要从 C 中的 char* 固定长度 C 风格字符串中获取位序列,我该怎么做?我需要代表字符串的一系列位,而不是特定的位。我需要严格使用 C 而不是 C++ 来完成。

最佳答案

您可以使用只有一个 1 的简单位掩码,并从 mask = 0x80 开始(二进制 10000000)并向下至 1(二进制 00000001)。

#include <stdio.h>

#define N 5

int main(void) {
    char mystring[N] = "abcd";
    unsigned i;
    unsigned char mask;

    for (i = 0; i < N; i++) {
        unsigned char c = mystring[i];
        unsigned char mask = 0x80;

        do {
            putchar(c & mask ? '1' : '0');
            mask >>= 1;
        } while (mask > 0);

        putchar(' ');
    }

    putchar('\n');
    return 0;
}

结果:

01100001 01100010 01100011 01100100 00000000

关于c - 从 C 语言中的 C 风格字符串获取位序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59994012/

相关文章:

python - 如何从 auth_user django python 中选择给定用户名和哈希密码的用户

php - 如何使用公钥和私钥保护小型php API

ruby-on-rails - 如何在 Rails 中生成唯一的请求 ID?

c - 重新排列字符串,使字母 'x' 后面永远不会跟字母 'y'

objective-c - 子类中 BOOL 上的 "Subscripted value is neither array nor pointer"错误

c - 使用 C 将 2D 数组传递给 RPC

arrays - 在 Perl 中通过哈希内部的引用数组传递

c - 导致崩溃的基本字符串比较

c++ - PJNATH 是否支持 ALTERNATE-SERVER 重定向?

c++ - 散列范围为 10 亿的 100 个不同的值