gpt4 book ai didi

c - 按原样获取 C 中 char 变量的二进制内容

转载 作者:太空宇宙 更新时间:2023-11-04 08:45:19 28 4
gpt4 key购买 nike

有没有办法按原样打印 char 变量的二进制内容。表示不将变量转换为 ASCII。

例如,

char c =  1000001;
printf("%c\n", c);

这幅画

A

但我想在不将其转换为 ascii 的情况下显示,如下所示。

1000001

这可能吗?

最佳答案

你可以按照下面的方式来做

C 中的 char 保证为 1 个字节,因此循环到 8。在每次迭代中,屏蔽掉最高位。一旦你拥有它,只需将它打印到标准输出。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int main(int argc,char *argv[])
{
char c = 1000001;
int i;
for (i = 0; i < 8; i++) {
printf("%d", !!((c << i) & 0x80));
}
printf("\n");

return 0;


}

或者你也可以使用itoa库函数如下

char c = 'C'
char output[9];
itoa(c, output, 2);
printf("%s\n", output);

另一种解决方案

char c = 'C';
int i = 0;
for (i = 7; i >= 0; --i)
{
putchar( (c & (1 << i)) ? '1' : '0' );
}
putchar('\n');

关于c - 按原样获取 C 中 char 变量的二进制内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21898510/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com