将一个BYTE数组转换成16进制字符串和10进制字符串格式
生活随笔
收集整理的這篇文章主要介紹了
将一个BYTE数组转换成16进制字符串和10进制字符串格式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
背景:
?unsigned char port[5];?
以02x的格式打印出來是 00 00 02 00 00
1.如何轉成16進制形式的字符串,使得char *strport16 = "0000020000";
2.如何轉成10進制形式的字符串,使得char *strport10 = "131072";
C code:
#include <stdio.h> #include <string.h>int main(int argc, char *argv[]) {unsigned char port[5] = {0x00, 0x00, 0x02, 0x00, 0x00};char buf[20] = {0};// format port[] to hex resultsprintf(buf, "%02x%02x%02x%02x%02x", port[0], port[1], port[2], port[3], port[4]);printf("十六進制:\t%s\n", buf);// format port[] to decimal result__int64 a = 0;memcpy(&a, port, sizeof(port)); // ensure the length of port[] is less than or equal to 8sprintf(buf, "%I64d\n", a); // format an integer of 64bit lengthprintf("十進制:\t\t%s\n", buf);__int64 bb = 0x1122334455667788;unsigned char *p = (unsigned char*)&bb;printf("bb = 0x%I64x\n", bb);for(int i = 0; i < sizeof(bb); i++){printf("%02x ", p[i]); // high part bytes store at high memory address}printf("\n");return 0; }
運行結果:
結論:整數的高位字節保存在高地址處,而且局部變量是保存在棧區的,在內存中的情況如圖:
總結
以上是生活随笔為你收集整理的将一个BYTE数组转换成16进制字符串和10进制字符串格式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TP LINK交换机 console
- 下一篇: (售前)销售经理和产品经理的区别以及未来