【发布时间】:2020-02-03 08:03:59
【问题描述】:
所以我正在尝试创建一个程序,其中用户输入一个 12 位二进制汉明码序列,如“100010010001”,它应该打印出其对应的 ASCII 字符,在本例中为“A”。
我试图让我的程序忽略位于 _ _ 0 _ 1 0 0 _ 0 0 0 1 中的 4 个奇偶校验位,并将其他 8 个位移过来,以便它们在一起。在 else 语句中,我尝试将剩余的 8 位转换为一个字符。但是,当我尝试运行该程序时,在我键入二进制序列并按 Enter 后程序崩溃。这是我正在努力解决的程序的一部分,我想知道是否有人可以帮助我或提示我做错了什么?
char charToBin(char usersInput[]) {
char c = " ";
for (int i = 12; i >= 0; i--) {
if((i == 0) || (i == 1) || (i == 3) || (i == 7)){
usersInput[i] = usersInput[i + 1];
}else{
c = strtol(usersInput[i], (char **)NULL, 2);
}
}
return c;
}
【问题讨论】:
标签: c character-encoding binary ascii decode