【发布时间】:2013-12-01 14:55:13
【问题描述】:
我试图弄清楚如何以二进制形式打印字符的 ascii 值。这是我到目前为止所做的,但它根本不起作用,我不知道为什么。你们中的某个 C 巫师可以帮助我吗??
#include <stdio.h>
int main(int argc, char** argv)
{
char myChar;
printf("Enter a character:\n");
scanf("%c", &myChar);
printf("Your character is %c\n", myChar);
printf("ASCII in BIN: %c\n", toBinary(myChar));
return 0;
}
char* toBinary(int decimalNumber)
{
char binaryValue[7] = "";
for (int i = sizeof(binaryValue); i >= 0; ++i)
{
int remainder = decimalNumber % 2;
decimalNumber = decimalNumber / 2;
binaryValue[i] = remainder;
}
return &binaryValue;
}
【问题讨论】:
-
你不能返回
binaryValue的地址,因为它是toBinary的本地地址,并且函数退出时数组不再存在。 -
i>=0 和 ++i 在 for 循环中一起使用?