【发布时间】:2020-05-26 17:30:31
【问题描述】:
谁能告诉我在C中用二进制表示字符的好方法?
我需要将给定的字符视为 1 和 0 的序列。
例如,如果我得到'a' 作为输入,我希望将其视为 01100001 并最终返回 00010110(一个带有反转半字节的字节)。
用unigned char好不好?我应该使用一个 8 元素的整数数组来存储一个字节吗?
int main(void){
unsigned char c = 'a';
return 0;
}
【问题讨论】:
-
请edit您的问题并添加更多详细信息。对于“字符”,您是指 ASCII 字符还是该术语是否包括其他可能使用带有第 7 位设置的单字节代码或多字节代码的字符? “我希望将其视为 01100001”到底是什么意思,是指以二进制格式输出(如
printf)还是转换为字符串?unsigned char可用于位移、屏蔽和组合等操作。 -
@Armali “达到完美,不是没有什么可添加的,而是没有什么可带走的。” - 安托万·德·圣埃克苏佩里
-
Is there a printf converter to print in binary format?: 57 个答案可以从中挑选“最好的”,足以满足任何人的个人标准。
-
要求最好的方法在这里通常是不受欢迎的,因为它涉及很多意见。要求好的方法或符合最佳实践的方法会更好。就我而言,即使我知道一个好的方法,我也永远不会回答要求最佳方法的问题,因为我很确定它可以改进......