の 16 進値を に変換しcharacter array
たいinteger
。
int main()
{
char arr[5];
arr[0] = 0x05;
int a = atoi(&arr[0]);
cout << "Number = " << a; //output = 0 but i want here value 5
}
の 16 進値を に変換しcharacter array
たいinteger
。
int main()
{
char arr[5];
arr[0] = 0x05;
int a = atoi(&arr[0]);
cout << "Number = " << a; //output = 0 but i want here value 5
}
変換はまったく必要ありません。
int main()
char arr[5];
arr[0] = 0x05;
int a = arr[0];
}
いかなる種類の変換も必要ありません -0x05
はすでに整数値です。
数値のテキスト表現である C 文字列がある場合、1. 文字列を NUL で終了する必要があります。2. 使用できますstrtol()
(またはその関数ファミリの 1 つのメンバー):
char arr[] = "0x05";
int n = strtol(arr, NULL, 0);
char に 0x05 を割り当てると、ASCII テーブルは 0x05 がどの数値にも変換できないことを示します。変換が実行されない場合、atoi 関数は 0 を返します。そのため、出力が 0 になりました