久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 想問下關于C語言16位整形變量強制轉換成32位計算操作 [打印本頁]

作者: zhl561    時間: 2019-6-17 17:38
標題: 想問下關于C語言16位整形變量強制轉換成32位計算操作
如圖,從數組里取出來的值經過計算不對!!關于變量的定義:
        u8 time1,time2, time3,time4;
        u16 time5,time6;
        u32 time7,time8,time9;
WORD是把8位轉換成16位;




作者: suncat0504    時間: 2019-6-17 22:39
涉及到指針的操作了,一定要小心,指針指向什么類型,意味著占用存儲空間的不同。不如char行占用一個單元(字節單位),兩位的整形,占用兩個單元。用指針賦值的時候,會根據指針的類型,從內存中取出對應長度的單元,組織成數據,然后賦值給接受對象。當有不同類型之間的賦值時,就涉及到自動轉換的問題。小往大轉,問題不大(但也涉及有符號時的出現問題)。大往小轉,會丟數據。另外數據類型占用內存單元,還涉及高位、低位的存儲順序,這個也一定要考慮,很重要。
你想要正確的結果,不如直接用time5=time1*256+time2;類似這樣的計算來得可靠。
作者: yzwzfyz    時間: 2019-6-18 08:23
寫程序時應盡量回避不確定的因素,因為你不能確定編譯平臺是如何編譯它的。
本例:如果先移位,后轉換。則16位的數制,移不出個32位的結果,多余則溢出丟棄。
如果先轉換,后移位則是可以的。
既然你不能確定,就分兩步一定要處理,一步先轉換,再一步進行移位。
學會規避不確定的因素,以保證正確率。
作者: zhl561    時間: 2019-6-18 09:14
suncat0504 發表于 2019-6-17 22:39
涉及到指針的操作了,一定要小心,指針指向什么類型,意味著占用存儲空間的不同。不如char行占用一個單元( ...

謝謝大佬指教,我試試
作者: zhl561    時間: 2019-6-18 15:45
yzwzfyz 發表于 2019-6-18 08:23
寫程序時應盡量回避不確定的因素,因為你不能確定編譯平臺是如何編譯它的。
本例:如果先移位,后轉換。則 ...

謝謝大佬指導





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 美女露尿口视频 | 日韩精品1区2区3区 爱爱综合网 | 91一区二区 | 亚洲国产成人精品久久 | 久精品久久 | 网黄在线| 视频一区二区在线观看 | 婷婷色在线播放 | 亚洲欧美一区二区三区在线 | 日本人做爰大片免费观看一老师 | 特黄色一级毛片 | 中文字幕亚洲一区二区三区 | 欧美日本亚洲 | 亚洲国产精品一区二区三区 | 亚洲精品乱码久久久久久9色 | 91久久国产综合久久 | 自拍偷拍3p | 一区二区三区欧美 | 久久毛片 | 精品国产第一区二区三区 | 欧洲亚洲视频 | 日韩国产欧美 | 日韩在线精品 | 中文字幕电影在线观看 | 久久久久久综合 | 日韩高清中文字幕 | 91精品国产一区二区三区 | 激情一区二区三区 | av免费观看在线 | 日本三级电影在线观看视频 | 日本羞羞影院 | 高清av电影 | 日韩在线一区二区三区 | 亚洲视频在线一区 | 91看片| 国产做a爱免费视频 | 精品视频免费在线 | 成人精品一区 | 国产精品1区 | 欧美日韩一区精品 | 日本不卡一区二区三区 |