按原样获取C中char变量的二进制内容
有没有办法按原样打印char变量的二进制内容。表示不将变量转换为ASCII 比如说,按原样获取C中char变量的二进制内容,c,character-encoding,char,C,Character Encoding,Char,有没有办法按原样打印char变量的二进制内容。表示不将变量转换为ASCII 比如说, char c = 1000001; printf("%c\n", c); 这张照片 A 但是我想在不将其转换为ascii的情况下进行显示,就像下面的一样 1000001 这可能吗?您可以通过以下方式完成 char c = 'C' char output[9]; itoa(c, output, 2); printf("%s\n", output); C中的字符保证为1字节,因此循环到8。 在每次迭代中,屏
char c = 1000001;
printf("%c\n", c);
这张照片
A
但是我想在不将其转换为ascii的情况下进行显示,就像下面的一样
1000001
这可能吗?您可以通过以下方式完成
char c = 'C'
char output[9];
itoa(c, output, 2);
printf("%s\n", output);
C中的字符保证为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;
}
还有一个解决方案
char c = 'C';
int i = 0;
for (i = 7; i >= 0; --i)
{
putchar( (c & (1 << i)) ? '1' : '0' );
}
putchar('\n');
charc='c';
int i=0;
对于(i=7;i>=0;--i)
{
putchar((c&(1可以尝试循环)
扫描你的角色,说“A”。
获取其ASCII(65)。
将65除以2直到商为零,将余数存储在数组/dynmalloc中。
反向读取数组
65/2 321
32/2 160
16/280
8/240
4/2 20
2/210
1/2 01所以你想打印出字符的二进制表示,对吗?没错。这就是我想要的。@chakrapani好的,请看我的答案。c=1000001;不是字符。正确的是c=0b1000001;