C ++ intデータ型とバイト交換の間

    バイトm_ch [12]。
    バイト* P = m_ch。
    バイト* PTEMP = m_ch。 

    int型TEMP [3] = {NULL}、
    バイトSS [4] = {NULL}。

バイトストリームバイトint型変換:


    INT pointX [3] = {123465789}。

    以下のために(; I <3 I ++ INT iが= 0)
    {
        memcpyを(P&pointXを[I]、4)。
        P + = 4。
    }

バイトストリーム型バイトの変換された後、あるm_ch [12]


転送バイトバイトのint型:

 

    以下のために(INT iは= 0; I <3; I ++)
    {

        memcpy(SS、PTEMP、4); // 22のコピーの4バイト(int型は4バイトです)

        // TEMP [I] = SS [0]&0xFFで。//方法一  
        // TEMP [I] | =((SS [1] << 8)&は0xFF00)。
        // TEMP [I] | =((SS [2] << 16)&は0xFF0000)。
        // TEMP [I] | =((SS [3] << 24)&0xFF000000)。

        方法II // 
        TEMP [I] = *(INT *)SS; // 最初の2つの方法(バイト*)強いポインタ(INT *)に曲がり、intへのポインタのその値

      // TEMP [I] = INT( * SS); // char型1バイトのSSエラーステートメント、のみ1バイトのサイズの大きさの値から取り出された表現のSS *(バイト*)ポインタ型の値、値、及びINTは4バイト、従って文不合理である
        PTEMP + = 4;
    }

間違っている場合は、私に知らせて!また、より良いアドバイスを聞いて喜んで。

 

公開された15元の記事 ウォン称賛20 ビュー10000 +

おすすめ

転載: blog.csdn.net/ZDT_zdh/article/details/82629364
おすすめ