您好,歡迎訪問上海意泓電子科技有限責(zé)任公司網(wǎng)站!
      4新聞資訊
      您的位置: 首頁 ->  新聞資訊 -> 單片機

      ?sprintf在51單片機中轉(zhuǎn)換字符出錯問題解決

      文章出處:單片機 責(zé)任編輯:上海意泓電子科技有限責(zé)任公司 發(fā)表時間:
      2020
      11-10

      sprintf是C語言庫中具有轉(zhuǎn)換數(shù)據(jù)類型的功能函數(shù),出現(xiàn)一種情況,

      在51單片機中,定義unsigned  char   temp;

      然后 想用串口直接把temp 以十進(jìn)制數(shù)是、形式打印出來,是先這樣轉(zhuǎn)換的 sprintf((char*)tem,"%d",temp);即先把temp轉(zhuǎn)換成十進(jìn)制數(shù)字符tem,然后再通過串口輸出tem,然而串口輸出的竟然有亂碼,而且和temp的值也不對應(yīng);

      查找原因:原來%d,代表的是將int型數(shù)據(jù)轉(zhuǎn)換為十進(jìn)制字符的作用,既然是int型,那他占用空間為至少2個字節(jié),那么我們定義的temp僅是unsigned char 占空間一字節(jié),所以函數(shù)在轉(zhuǎn)換時,會錯誤的轉(zhuǎn)換temp空間外的一字節(jié)空間的數(shù)據(jù),這是未知的數(shù)據(jù),所以會出現(xiàn)打印亂碼情況,那么把unsigned char temp;改為 unsigned int temp 后,再次測試

      果然輸出正確無誤!


      上海意泓電子科技有限責(zé)任公司 版權(quán)所有 未經(jīng)授權(quán)禁止復(fù)制或鏡像

      CopyRight 2020-2025 m.topsschool.com All rights reserved   滬ICP備2021005866號

      亚洲精品无码va人在线观看,少妇 逼小 水多,国产区免费av,国产精品无码观看

          99re亚洲精品综合色| 天天天做夜夜夜做无码| 国产精品国产馆在线真实露脸| 在线免费观看下载国产黄色视频| 中文字幕制服丝袜在线观看| 精品少妇无码在线视频| 青青热久免费精品视频在线观看| 国产精品r级在线| 国产三级不卡在线电影| 免费无遮挡一类视频网站在线观看| 日本欧美一区二区三区视频| 97国产精品| 亚洲一区无码高潮午夜福利| 99精品国产一区二区三区| 精品久久人人妻人人做精品| 国产成人在线观看免费网站| 亚洲中文精品一区二区三区| 国产在线观看精品无码不卡| 一区二区婷婷在线视频| 国产无遮挡18禁免费黄色网站| 人妻少妇久久中文字幕电影| 亚洲精品在现视频| 一级片久久| 欧美久久亚洲交换配乱吟粗大| 国产欧洲一区二区在线观看| 真实国产乱子伦对白在线播放| 久久久久免费精品人妻一区二区| 日本亚洲欧美在线视观看在线观看| 国产欧美日韩综合一区在线播放|