【发布时间】:2017-03-31 12:25:08
【问题描述】:
我将一个十六进制数传入 hex2bin,它会正确打印出二进制数,但我不希望它打印出我想要返回的数字,因此我可以使用它来查找数字的基数。我将如何存储号码而不是打印出来?
int hex2bin (int n){
int i,k,mask;
for(i = sizeof(int) * 8 - 1; i >= 0; i--){
mask = 1 << i;
k = n & mask;
k == 0 ? printf("0"):printf("1");
}
return 0;
}
【问题讨论】:
-
你传入的数字'n'和它的二进制表示是相同的,因为它们都以
0和1的形式存储在内存中。如果我理解你的问题,那么你不需要传递给hex2bin,你只需要分析基数而不是以你选择的任何方式传递给printf。该方法本质上是相同的,但您必须注意您的位顺序(它与打印顺序相反)