亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

printf 十六進制打印有符號char注意事項

發布時間:2020-06-14 20:14:41 來源:網絡 閱讀:1212 作者:fengyuzaitu 欄目:編程語言

場景
 接收到Pelco-d協議中的七個字節報文,將每一個字節十六進制打印,有些字符自動添加ffffff

測試代碼
#include <iostream>
#include <fstream>
#include <string>

char szQueryPanPos[7] = { 0xff, 0x01, 0x00, 0x51, 0x00, 0x00, 0x52 };
unsigned char szQueryTiltPos[7] = { 0xff, 0x01, 0x00, 0x53, 0x00, 0x00, 0x54 };

int main()
{
 int i = 0;
 //1打印符號char
 while (i < 7)
 {
  printf(" %02x ", szQueryPanPos[i]);
  i++;
 }
 printf("\n");
 i = 0;
 //2強制轉換符號char為無符號char打印
 while (i < 7)
 {
  printf(" %02x ", (unsigned char)szQueryPanPos[i]);
  i++;
 }
 printf("\n");
 i = 0;
 //3打印無符號char
 while (i < 7)
 {
  printf(" %02x ", szQueryTiltPos[i]);
  i++;
 }
 printf("\n");
 return 0;
}
打印結果如下:
 ffffffff  01  00  51  00  00  52
 ff  01  00  51  00  00  52
 ff  01  00  53  00  00  54

問題:有符號char如果其符號位為1,printf格式化輸出其十六進制數值,前面自動補全四個fffff,無符號char沒有問題
分析:有符號char型如果最高位是1,意思是超過了0x7f,當%X格式化輸出的時候,則會將這個類型的值拓展到int型的32位,
所以才會出現0xff,被擴展為ffffffff


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南康市| 新建县| 稷山县| 行唐县| 汉中市| 清徐县| 台江县| 和政县| 临桂县| 海丰县| 玛纳斯县| 茶陵县| 海盐县| 怀来县| 蓝山县| 紫云| 富蕴县| 朝阳县| 庆安县| 惠东县| 石棉县| 都江堰市| 九寨沟县| 金昌市| 财经| 永宁县| 洛南县| 唐山市| 奇台县| 邯郸县| 营山县| 驻马店市| 噶尔县| 海城市| 新余市| 苍溪县| 漯河市| 金坛市| 易门县| 屯留县| 德化县|