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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7635|回復: 4
打印 上一主題 下一主題
收起左側

想問下關于C語言16位整形變量強制轉換成32位計算操作

[復制鏈接]
跳轉到指定樓層
樓主
如圖,從數組里取出來的值經過計算不對!!關于變量的定義:
        u8 time1,time2, time3,time4;
        u16 time5,time6;
        u32 time7,time8,time9;
WORD是把8位轉換成16位;



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:517466 發表于 2019-6-17 22:39 | 只看該作者
涉及到指針的操作了,一定要小心,指針指向什么類型,意味著占用存儲空間的不同。不如char行占用一個單元(字節單位),兩位的整形,占用兩個單元。用指針賦值的時候,會根據指針的類型,從內存中取出對應長度的單元,組織成數據,然后賦值給接受對象。當有不同類型之間的賦值時,就涉及到自動轉換的問題。小往大轉,問題不大(但也涉及有符號時的出現問題)。大往小轉,會丟數據。另外數據類型占用內存單元,還涉及高位、低位的存儲順序,這個也一定要考慮,很重要。
你想要正確的結果,不如直接用time5=time1*256+time2;類似這樣的計算來得可靠。
回復

使用道具 舉報

板凳
ID:123289 發表于 2019-6-18 08:23 | 只看該作者
寫程序時應盡量回避不確定的因素,因為你不能確定編譯平臺是如何編譯它的。
本例:如果先移位,后轉換。則16位的數制,移不出個32位的結果,多余則溢出丟棄。
如果先轉換,后移位則是可以的。
既然你不能確定,就分兩步一定要處理,一步先轉換,再一步進行移位。
學會規避不確定的因素,以保證正確率。
回復

使用道具 舉報

地板
ID:386053 發表于 2019-6-18 09:14 | 只看該作者
suncat0504 發表于 2019-6-17 22:39
涉及到指針的操作了,一定要小心,指針指向什么類型,意味著占用存儲空間的不同。不如char行占用一個單元( ...

謝謝大佬指教,我試試
回復

使用道具 舉報

5#
ID:386053 發表于 2019-6-18 15:45 | 只看該作者
yzwzfyz 發表于 2019-6-18 08:23
寫程序時應盡量回避不確定的因素,因為你不能確定編譯平臺是如何編譯它的。
本例:如果先移位,后轉換。則 ...

謝謝大佬指導
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久精 | 中文字幕加勒比 | 99国产精品久久久 | 少妇无套高潮一二三区 | 国产最新视频在线 | 国产在线视频在线观看 | 成人免费在线播放视频 | 久久一热 | 欧美一级在线 | 久草成人 | 国产成人精品久久二区二区91 | 成人免费区一区二区三区 | av一区二区三区 | 久久欧美高清二区三区 | 日日碰狠狠躁久久躁婷婷 | 日韩精品一区二 | 欧美日韩视频 | 青娱乐国产 | 国产精品69毛片高清亚洲 | 久久久精品网 | 日韩精品久久久 | 成年人在线观看 | 久久一 | 天天干b | 成人a免费| 国产精品久久精品 | h视频免费在线观看 | 91精品国产乱码久久久久久久久 | 国产精品色 | 成人网av| gav成人免费播放视频 | 一级全黄视频 | 日韩黄色免费 | 搞av.com| dy天堂| 亚洲精品大全 | 亚洲精品一区二区 | 国产xxxx在线 | 日韩精品一区二区三区在线播放 | 国产区一区二区三区 | 爱爱免费视频 |