Number(string binary)
{
int raw_string_int[size];
char raw_string_char[size];
strcpy(raw_string_char,binary.c_str());
printf("Raw String is %s",raw_string_char);
for (int i=0;i<size;i++)
{
raw_string_int[i] = int(raw_string_char[i]);
printf("%i\n",int(raw_string_char[i]));
if (raw_string_int[i] != 0 || raw_string_int[i] != 1)
{
printf("ERROR NOT A BINARY NUMBER\n");
exit(0);
}
}
Run Code Online (Sandbox Code Playgroud)
嗨,我在命令提示符下输入0001作为二进制文件,但raw_string_char附加了两个额外的数字.任何人都可以向我解释为什么会这样吗?回车是作为字符引入的吗?
这是我在命令提示符下得到的内容:
./test
0001
Raw String is 000148
ERROR NOT A BINARY NUMBER
Run Code Online (Sandbox Code Playgroud)
你忘记了第一个printf中的"\n".48来自第二个printf,它是将第一个'0'(ASCII 0x30 = 48)转换为int的结果.
要将文本0或1转换为相应的整数,需要减去0x30.
| 归档时间: |
|
| 查看次数: |
202 次 |
| 最近记录: |