>>purin52002さん
格納できます。
コード:
unsigned char hex_value = 0xFF; // 16進数のFF(10進数の255)がこの変数に格納される
unsigned char dec_value = 84; // 10進数の84(16進数の54)がこの変数に格納される
printf("%d", hex_value); // "255" (16進数=FF)
printf("%x", dec_value); // "54" (10進数=84)
>>たけのこさん
hex_aryの各要素の値(0x0D, 0x37, 0x1E)は、
それぞれ10進数で表すと(13, 55, 30)です。
なので、そのまま代入すれば同じ値となります。
printf関数のフォーマット指定子を"%d"にすれば10進数で、"%x"(または"%X")にすれば16進数で
(整数型の変数に代入した)値を表示してくれます。
以下一例
※説明が間違っていたらすみません
コード:
#include <stdio.h>
// main関数
int main(void){
// 16進数で値を格納する配列
unsigned char hex_ary[3];
// 10進数で値を格納する配列
unsigned char dec_ary[3] = { 0 };
// 16進数の配列に値を格納
hex_ary[0] = 0x0D;
hex_ary[1] = 0x37;
hex_ary[2] = 0x1E;
// 値の表示(16進表示, 10進表示)
for (int i = 0; i < 3; i++){
dec_ary[i] = hex_ary[i];
printf("hex_ary[%d]=0x%02X dec_ary[%d]=%d \n", i, hex_ary[i], i, hex_ary[i]);
}
return 0;
};
出力結果は
hex_ary[0]=0x0D dec_ary[0]=13
hex_ary[1]=0x37 dec_ary[1]=55
hex_ary[2]=0x1E dec_ary[2]=30