如何将x中的多字符常量转换为整数?
我试图例如'13'为('3' + '1' << 3),但它不能正常工作.我不是说"0123",但是'0123'.它编译,但我不知道编译器打印时如何获得八进制结果6014231063.我不是在寻找atoi哪个只是将其转换为现在的数字.例如,int x = '1'将以十进制数字系统打印49.现在我感兴趣的是什么会打印int x = '0123'.这项任务来自编程竞赛,所以答案不应该是意外行为.
int main(void) {
int x = '0123';
printf("%o\n", x);
printf("%d\n", x >> 24);
printf("%d\n", x << 8 >> 24);
printf("%d\n", x & 0xff);
return 0;
}
Run Code Online (Sandbox Code Playgroud)