您好,歡迎訪問上海意泓電子科技有限責(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 www.topsschool.com All rights reserved   滬ICP備2021005866號

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

          中文字幕在线不卡v一二三区| 日韩欧美三级| 亚洲人成在线观看无码| 人妻出轨不卡中文字幕97| 国产精品亚洲香蕉第五区| 无码午夜福利免费区久久| 麻豆国产尤物AV尤物在线观看| 中国亚洲一级黄色片视频| 午夜福利欧美一区在线观看| 国产精品视频一区三区| 精品无码久久久久成人AV| 国产A级毛片久久久精品毛片| 中文字幕高清色婷婷视频网| 欧美日韩三区| 爽又黄少妇毛片在线看| 伊人色综合网站精品无码| 免费 无码 国产在线观看91?| 成人一级视频| 国产人碰人啪人爱视频| 国产精品免费观看a∨片| 中文老熟妇乱子伦在线视频| 欧美 另类亚洲日本一区二区| 国产高清在线观看av片| 亚洲天堂免费看无码片| 91久久国产综合久久91精品网站| 人妻有码无码视频在线| 亚洲免费综合色在线视频| 在线日本v二区不卡中文字幕| 国产亚洲精aa在线看|