線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:904
推到 Plurk!
推到 Facebook!

16進制數字分解問題

答題得分者是:g6101
hjlin
一般會員


發表:63
回覆:48
積分:22
註冊:2003-02-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-14 18:00:21 IP:61.56.xxx.xxx 未訂閱
請問一下各位,如果我有一個16進制的數字為 0x12345 (最多3個byte) 我要如何把這個數字分解成三個 byte 來表示,內容分別為 01, 23, 45 謝謝各位!
lu
高階會員


發表:11
回覆:189
積分:195
註冊:2003-11-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-14 18:10:42 IP:210.68.xxx.xxx 未訂閱
試試看這樣吧
int aa=0x123456;
int a,b,c;
c = aa & 0x0000ff;
b = (aa & 0x00ff00)>>8;
a = (aa & 0xff0000)>>16;
結果 a=0x12 , b=0x34, c=0x56 ========================= 大家一起快樂寫程式
g6101
高階會員


發表:22
回覆:129
積分:110
註冊:2002-06-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-14 20:49:59 IP:163.29.xxx.xxx 未訂閱
hjlin 您好: 請參考以下的程式碼     

    AnsiString str;
    int i = 0x12345;
    char buf[3];
    str.sprintf("x",i); //先將數字轉成16進位的(6個字)字串
    //再將16進位的字(二個字為一組)串轉成數值傳入字元陣列中
    sscanf(str.c_str(),"xxx",&buf[0],&buf[1],&buf[2]);
    //則buf陣列內容為buf[0]=0x01;buf[1]=0x23;buf[2]=0x45(共三個bytes)
 
希望對你有幫助
系統時間:2024-05-18 12:37:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!