printf以某种方式将二进制转换为十进制

时间:2015-05-09 11:03:48

标签: c printf

新手问题:为什么我不能让printf按原样输出二进制数,而不是转换它?

int gpa = 01011001;
printf("pure: %i \n", gpa);

给出输出:266753

如何输出01011001或仅输出1011001?

2 个答案:

答案 0 :(得分:2)

整数文字前面的

PreparedStatement addMedicationStm = con.prepareStatement("INSERT INTO " + "yourtableName " + "(column1Name, column2Name,...) " + "VALUES (?,?,...)", Statement.RETURN_GENERATED_KEYS); 保持八进制数。 0的十进制等值为01011001。删除前面的266753以打印原样。

答案 1 :(得分:0)

C不支持二进制常量(尽管单个编译器可能作为扩展)。

您可以使用十六进制表示法:

int gpa = 0x59; // 01011001 binary
printf( " pure: %02x\n", gpa );

如果要以二进制格式显示值,则必须滚动自己的输出函数。