91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

罗山县| 黑河市| 辽宁省| 尉犁县| 旬邑县| 五台县| 澄迈县| 义马市| 霍州市| 渭南市| 邮箱| 萍乡市| 游戏| 凤台县| 宝鸡市| 博野县| 闵行区| 莱州市| 洞口县| 弥渡县| 拉萨市| 双柏县| 裕民县| 扎囊县| 新兴县| 南城县| 阿拉善右旗| 义马市| 鄂尔多斯市| 南陵县| 沛县| 申扎县| 扬州市| 苗栗县| 香格里拉县| 册亨县| 黄石市| 柏乡县| 望城县| 共和县| 滨海县|