-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  
}
4

4 に答える 4

2

変換はまったく必要ありません。

int main()
  char arr[5];
  arr[0] = 0x05;
  int a = arr[0];
}
于 2013-05-03T08:45:33.420 に答える
1

いかなる種類の変換も必要ありません -0x05はすでに整数値です。

数値のテキスト表現である C 文字列がある場合、1. 文字列を NUL で終了する必要があります。2. 使用できますstrtol()(またはその関数ファミリの 1 つのメンバー):

char arr[] = "0x05";
int n = strtol(arr, NULL, 0);
于 2013-05-03T08:39:47.497 に答える
0

char に 0x05 を割り当てると、ASCII テーブルは 0x05 がどの数値にも変換できないことを示します。変換が実行されない場合、atoi 関数は 0 を返します。そのため、出力が 0 になりました

于 2013-05-03T08:45:59.480 に答える