私は次のような数字のリストを持っています:
0、16、32、48 ...
これらの数値を16進数で出力する必要があります。
0000,0010,0020,0030,0040 ...
私は次のような解決策を試しました:
printf("%.4x",a); // where a is an integer
しかし、私が得た結果は次のとおりです。
0000、0001、0002、0003、0004 ...
私はそこに近いと思います。 Cのprintf
があまり得意ではないので、誰でも助けてくれます。
ありがとう。
試してください:
printf("%04x",a);
0
-パディングが指定されている場合、スペースの代わりにゼロ(0)で数値を左詰めします。4
(幅)-印刷される最小文字数。印刷される値がこの数値よりも短い場合、結果はこの幅内で右詰めされ、左側に埋め込み文字が埋め込まれます。デフォルトではこれは空白ですが、使用した先行ゼロは埋め込み文字としてゼロを指定します。結果が大きくても、値は切り捨てられません。x
-16進整数の指定子。もっと こちら
私はこれを次のように使用します:
printf("my number is 0x%02X\n",number);
// output: my number is 0x4A
数字「2」を印刷したい任意の数の文字に変更するだけです;)
コードに問題はありません。希望どおりに印刷します。または、これを行うことができます:
printf("%04x",a);
次のスニペットコードを使用できます。
#include<stdio.h>
int main(int argc, char *argv[]){
unsigned int i;
printf("decimal hexadecimal\n");
for (i = 0; i <= 256; i+=16)
printf("%04d 0x%04X\n", i, i);
return 0;
}
10進数と16進数の両方をゼロの埋め込みで4桁に印刷します。