日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

编译器编译16bit单片机程序对数组data[0]=0x12,data[1]=0xBD,data[2]=0x00,data[3]=0x45转换成16进制整数12BD0045的报警

發布時間:2025/4/16 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编译器编译16bit单片机程序对数组data[0]=0x12,data[1]=0xBD,data[2]=0x00,data[3]=0x45转换成16进制整数12BD0045的报警 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

16bit單片機程序:

定義32bit一個變量,uint32_t ?decData = 0;

剛開始時在16bit和32bit單片機中都這樣寫:

decData = ( data[0]?<< 24) | (data[1] << 16) | (data[2] << 8 ) | data[3];

問題發現:

編譯16bit單片機程序時,編譯器一直報警,提示數據太大溢出;

編譯32bit單片機程序時,編譯器不報警。

疑問猜測:

16bit單片機不支持這樣的寫法?

查看芯片技術手冊,發現芯片內部有32bit硬件乘法器,

程序改良:

decData = ( data[0]?*2^24) | (data[1]?*2^16) | (data[2]*2^8) |?data[3];

不過這樣寫還得實現一個類似pow功能函數或者直接調用C語言庫函數pow,C語言庫函數的pow都是double參數和字節實現返回值,用著不習慣,自己實現一個pow功能函數,

uint32_t powFunc(uint8_t x,uint8_t power)//n的幾次方
{
? ? if(power == 0)
? ? {
? ? ? ? return 1;
? ? }
? ? if(power == 1)
? ? {
? ? ? ? return x;
? ? }
? ? return x*powFunc(x,power-1);
}

decData = (data[0]*powFunc(2,24)) | (data[1]*powFunc(2,16)) | (data[2]*powFunc(2,8)) | data[3]?;

后來想了想,這樣寫一個函數占內存空間,把上面的代碼再改良,如下:

decData = ( data[0]?*0x1000000UL) | (data[1]*0x10000UL) | (data[2] *0x100UL) | data[3];

或者宏定義:

#define ?SHIFT_LEFT_24BIT ??0x1000000UL

#define ?SHIFT_LEFT_16BIT ??0x10000UL

#define ?SHIFT_LEFT_8BIT ??0x100UL

decData = ( data[0] *?SHIFT_LEFT_24BIT) | (data[1]*SHIFT_LEFT_16BIT) ?| (data[2] *SHIFT_LEFT_8BITL) | data[3];

發現這樣也占內存,不過看著能理解其中的意思,但是考慮到芯片內存比較小,最后退回上一個寫法:

decData = ( data[0]?* 0x1000000UL) |?(data[1] * 0x10000UL) |?(data[2]?* 0x100UL) | data[3];

這樣順利解決了編譯器報警溢出問題,換算出來的數據正常沒有問題。

在32bit單片機程序中,用上面三種方式得到的結果都是一樣的,如下圖所示:

?

總結

以上是生活随笔為你收集整理的编译器编译16bit单片机程序对数组data[0]=0x12,data[1]=0xBD,data[2]=0x00,data[3]=0x45转换成16进制整数12BD0045的报警的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 粗暴video蹂躏hd | 亚洲图片一区二区 | 91网站免费视频 | 亚洲蜜桃精久久久久久久久久久久 | 久久久男人天堂 | 欧美成人黄色网 | xxxx视频在线 | 色哟哟一区二区 | 日本一级三级三级三级 | 99久久精品国产一区二区三区 | 欧美日韩中文在线视频 | 成年免费视频黄网站在线观看 | 国产a√精品区二区三区四区 | 久久99国产精品久久99果冻传媒 | 日本a级免费 | 亚洲免费观看高清完整版在线 | 日本精品一区二区在线观看 | 国产欧美一区二区三区在线看 | av手机免费看 | 国产污视频在线观看 | 99cao| 欧美mv日韩mv国产网站app | 国产精品欧美一区喷水 | 男人天堂手机在线 | 丰满人妻一区二区三区免费视频棣 | 男生和女生差差视频 | 公肉吊粗大爽色翁浪妇视频 | 丁香花电影免费播放电影 | 色国产在线 | 久久人| 亚洲蜜桃视频 | jizz国产免费 | www.亚洲一区二区三区 | 黄色录像三级 | av鲁丝一区鲁丝二区鲁丝三区 | 台湾综合色 | 亚州av综合色区无码一区 | 国产一区二区三区免费看 | av在线看片 | 亚洲一级片av | 免费观看的黄色网址 | 欧美三级小说 | 桃色视频网 | av综合站 | 久久久久中文字幕亚洲精品 | 猛男大粗猛爽h男人味 | 91avcom| 泷泽萝拉在线播放 | 男女污网站 | 国产精品白浆一区二小说 | 93看片淫黄大片一级 | 日本视频一区二区 | 妇女一级片| 午夜性色福利视频 | 日本成人在线播放 | 伊人久久色| 免费看av毛片 | 日本欧美一级 | いいなり北条麻妃av101 | jizz韩国 | 欧美日本一道本 | 国产高清欧美 | 日韩精品视频免费播放 | 动漫av在线免费观看 | jizz亚洲女人 | 先锋成人| 国产白丝精品91爽爽久久 | 中文字幕色哟哟 | 欧美日韩1区2区3区 亚洲日本精品视频 | 国产精品日韩一区二区三区 | 久久精品视频国产 | 少妇脚交调教玩男人的视频 | 日本少妇色 | 日韩女优一区 | 台湾色综合| 人妻体内射精一区二区三区 | 少妇高潮一区二区三区99刮毛 | 男女性杂交内射妇女bbwxz | 国产一级自拍视频 | 亚洲精品一品 | 亚洲影库 | 国产精品久久久久久亚洲色 | 日韩一二三四 | 韩国19主播内部福利vip | 国产色无码精品视频 | 亚洲aa | 日韩在线视频网 | 日韩一区二区三区三四区视频在线观看 | 伊人网久久久 | 欧美天堂| 欧美顶级毛片在线播放 | 黄色免费播放 | www插插插 | 一卡二卡三卡在线 | 欧美日韩精品网站 | 亚洲成人av电影 | 国产日日夜夜 | 黄色一级片免费观看 | 亚洲一区视频在线播放 |