欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 為什么這函數判斷失敗 [打印本頁]

作者: Graves    時間: 2024-5-13 15:10
標題: 為什么這函數判斷失敗
u32 TEST_FUN(void)
{
    u16 low,high;
    u32 re;
    low=0xAAAA;
    high=0x5555;
    re=(u32)(high<<16|low);//////////                           [2:].zfill(8)
    return re;
}
if(TEST_FUN()==0x5555AAAA)
{
//判斷失敗,為啥這re不是0x5555AAAA?
}

作者: LaoYuTou    時間: 2024-5-13 15:37
強制類型轉換位置錯了  re=((u32)high<<16|low);//////////
作者: LaoYuTou    時間: 2024-5-13 15:38
你對結果強制類型轉換,運算錢high還是u16類型,應該把high強制類型轉換。類型全換為u32就好了。
作者: Graves    時間: 2024-5-13 15:51
LaoYuTou 發表于 2024-5-13 15:38
你對結果強制類型轉換,運算錢high還是u16類型,應該把high強制類型轉換。類型全換為u32就好了。

感謝,我再試試
作者: Graves    時間: 2024-5-13 16:01
qq475878026 發表于 2024-5-13 15:51
感謝,我再試試

確實是這樣,學藝不精了。之前AD轉換平均運算也沒發現這問題,到這里才發現問題
作者: rundstedt    時間: 2024-5-16 22:50
完全沒必要移位,太浪費時間了。
u32 i;
u16 *p=&i;
*p=0x5555;
++p;
*p=0xaaaa;

看上去跟你的代碼差不多,但實際上沒幾個機器碼,比你的執行起來快多了。




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1