为什么只能赋值16进制的首字母?

我想把转还的16进制数,赋值给DATA[5],为什么只能赋值16进制的首字母?


void TMotor::CAN_TorgueControl(int32_t iqControl) {
    uint8_t TxData[8] = { 0 };
    int n = 0; //防止数过大
    int m = 0;
    int k = 0;
    char hex[100];

    n = 36000;
    if (n == 0) {
        cout << '0';
    }
    while (n > 0) {
        m = n % 16;
        n /= 16;
        //转换为字符串
        if (m > 9)
            hex[k++] = 'A' + m - 10;
        else
            hex[k++] = '0' + m;
    }
    for (int i = k - 1; i >= 0; i--) {
        cout << hex[i];
    }
    TxData[0] = 0xA1;
    TxData[1] = 0;
    TxData[2] = 0;
    TxData[3] = 0;
    TxData[4] = 0;   //*(uint8_t *)(&iqControl);
    TxData[5] = *hex;   //*((uint8_t *)(&iqControl)+1);
    TxData[6] = 0;
    TxData[7] = 0;
//    std::cout << "hex 数组  : " << Hex << std::endl;
    cout << "*hex:" << *hex << endl;

    cout << "shuzu" << hex << endl;

    this->send_can_msg(TxData);

}

因为data[5]里只有一个uint8_t ,只能存下一个字母