在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【RT-Thread學習筆記】使用hexdump打印字節(jié)數(shù)組

嵌入式物聯(lián)網(wǎng)開發(fā) ? 來源:嵌入式物聯(lián)網(wǎng)開發(fā) ? 作者:嵌入式物聯(lián)網(wǎng)開發(fā) ? 2022-07-30 13:59 ? 次閱讀

?今天給大家介紹一個非常有效的打印字節(jié)數(shù)組的函數(shù),它的顯示方式跟Linux命令行的hexdump的輸出非常類似。

先給大家上一個效果圖:

它的輸出分為三部分:字節(jié)偏移量、16進制字節(jié)數(shù)據(jù)、ASCII碼可顯字符;

其中ASCII部分,如果對應的字節(jié)是非可顯字符,則用.代替。

立馬送上它的函數(shù)實現(xiàn):


#include 
#include 

int log_hexdump(const char *title, const unsigned char *data, int len)
{
    char str[160], octet[10];
    int ofs, i, k, d;
    const unsigned char *buf = (const unsigned char *)data;
    const char dimm[] = "+------------------------------------------------------------------------------+";

    printf("%s (%d bytes):\r\n", title, len);
    printf("%s\r\n", dimm);
    printf("| Offset  : 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F   0123456789ABCDEF |\r\n");
    printf("%s\r\n", dimm);

    for (ofs = 0; ofs < (int)len; ofs += 16) {
        d = snprintf( str, sizeof(str), "| %08X: ", ofs );

        for (i = 0; i < 16; i++) {
            if ((i + ofs) < (int)len) {
                snprintf( octet, sizeof(octet), "%02X ", buf[ofs + i] );
            } else {
                snprintf( octet, sizeof(octet), "   " );
            }

            d += snprintf( &str[d], sizeof(str) - d, "%s", octet );
        }
        d += snprintf( &str[d], sizeof(str) - d, "  " );
        k = d;

        for (i = 0; i < 16; i++) {
            if ((i + ofs) < (int)len) {
                str[k++] = (0x20 <= (buf[ofs + i]) &&  (buf[ofs + i]) <= 0x7E) ? buf[ofs + i] : '.';
            } else {
                str[k++] = ' ';
            }
        }

        str[k] = '\0';
        printf("%s |\r\n", str);
    }

    printf("%s\r\n", dimm);

    return 0;
}

int main(int argc, const char *argv[])
{
	unsigned char test_buf[12] = {3 , 6, 7, 9, 234, 67, 77};
	char *msg_ch = "我是一個中文字符串";
	char *msg_en = "I am english string";
	
	log_hexdump("test_buf", test_buf, sizeof(test_buf));
	log_hexdump("msg_ch", msg_ch, strlen(msg_ch));
	printf("msg_ch: %s\r\n\r\n\r\n", msg_ch);
	log_hexdump("msg_en", msg_en, strlen(msg_en));
	printf("msg_en: %s\r\n\r\n\r\n", msg_en);
	
	return 0;
}
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

調用代碼也很簡單,就像上面的main函數(shù)調用一樣。


好了,這個使用的打印函數(shù)就介紹到這里,感興趣的可以研究下它的源碼,希望能夠幫助到你。

?審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11322

    瀏覽量

    209861
  • 字節(jié)
    +關注

    關注

    0

    文章

    40

    瀏覽量

    13768
  • 函數(shù)
    +關注

    關注

    3

    文章

    4338

    瀏覽量

    62751
  • RT-Thread
    +關注

    關注

    31

    文章

    1296

    瀏覽量

    40236
收藏 人收藏

    評論

    相關推薦

    RT-Thread學習筆記】使用scons命令生成靜態(tài)庫

    RT-Thread學習筆記】如何使用scons 命令中buildlib的生成靜態(tài)庫?
    的頭像 發(fā)表于 07-27 09:13 ?6077次閱讀
    【<b class='flag-5'>RT-Thread</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>】使用scons命令生成靜態(tài)庫

    RT-Thread學習筆記】RISC-V匯編基礎三大塊知識

    RT-Thread學習筆記】RISC-V匯編基礎的三大塊知識
    的頭像 發(fā)表于 07-30 11:01 ?2778次閱讀
    【<b class='flag-5'>RT-Thread</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>】RISC-V匯編基礎三大塊知識

    RT-Thread Nano入門學習筆記

    RT-Thread Nano入門學習筆記
    發(fā)表于 11-26 12:36 ?20次下載
    <b class='flag-5'>RT-Thread</b> Nano入門<b class='flag-5'>學習</b><b class='flag-5'>筆記</b>

    RT-Thread 應用筆記 - RTC Alarm 組件的使用

    RT-Thread 應用筆記 - 不正確使用LOG也會引發(fā)hard faultRT-Thread 應用筆記 - RTC Alarm 組件的使用RT-
    發(fā)表于 01-25 18:18 ?10次下載
    <b class='flag-5'>RT-Thread</b> 應用<b class='flag-5'>筆記</b> - RTC Alarm 組件的使用

    RT-Thread 內核學習筆記 - 理解defunct僵尸線程

    RT-Thread 內核學習筆記 - 內核對象rt_objectRT-Thread 內核學習筆記
    發(fā)表于 01-25 18:19 ?8次下載
    <b class='flag-5'>RT-Thread</b> 內核<b class='flag-5'>學習</b><b class='flag-5'>筆記</b> - 理解defunct僵尸線程

    RT-Thread 內核學習筆記 - 設備模型rt_device的理解

    RT-Thread 內核學習筆記 - 內核對象rt_objectRT-Thread 內核學習筆記
    發(fā)表于 01-25 18:19 ?8次下載
    <b class='flag-5'>RT-Thread</b> 內核<b class='flag-5'>學習</b><b class='flag-5'>筆記</b> - 設備模型<b class='flag-5'>rt</b>_device的理解

    RT-Thread 內核學習筆記 - 內核對象鏈表結構深入理解

    RT-Thread 內核學習筆記 - 內核對象rt_objectRT-Thread 內核學習筆記
    發(fā)表于 01-25 18:23 ?6次下載
    <b class='flag-5'>RT-Thread</b> 內核<b class='flag-5'>學習</b><b class='flag-5'>筆記</b> - 內核對象鏈表結構深入理解

    RT-Thread 內核學習筆記 - 內核對象初始化鏈表組織方式

    RT-Thread 內核學習筆記 - 內核對象rt_objectRT-Thread 內核學習筆記
    發(fā)表于 01-25 18:24 ?3次下載
    <b class='flag-5'>RT-Thread</b> 內核<b class='flag-5'>學習</b><b class='flag-5'>筆記</b> - 內核對象初始化鏈表組織方式

    RT-Thread 內核學習筆記 - 內核對象操作API

    RT-Thread 內核學習筆記 - 內核對象rt_objectRT-Thread 內核學習筆記
    發(fā)表于 01-25 18:26 ?7次下載
    <b class='flag-5'>RT-Thread</b> 內核<b class='flag-5'>學習</b><b class='flag-5'>筆記</b> - 內核對象操作API

    RT-Thread學習筆記分享

    我是從2020年11月初開始學習RT-Thread實時操作系統(tǒng)的,在學習RT-Thread之前,我接觸過uCOS和FreeRTOS,但這兩個在單片機上應用的實時操作系統(tǒng),我都沒有仔細并
    的頭像 發(fā)表于 01-27 18:52 ?2144次閱讀

    RT-Thread學習筆記 RT-Thread的架構概述

    RT-Thread 簡介 作為一名 RTOS 的初學者,也許你對 RT-Thread 還比較陌生。然而,隨著你的深入接觸,你會逐漸發(fā)現(xiàn) RT-Thread 的魅力和它相較于其他同類型 RTOS
    的頭像 發(fā)表于 07-09 11:27 ?4571次閱讀
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b> <b class='flag-5'>RT-Thread</b>的架構概述

    RT-Thread學習筆記】Makefile的FORCE

    RT-Thread學習筆記】十分鐘學會Makefile的FORCE
    的頭像 發(fā)表于 07-30 13:55 ?2608次閱讀
    【<b class='flag-5'>RT-Thread</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>】Makefile的FORCE

    RT-Thread學習筆記】如何抓取終端的網(wǎng)絡報文

    RT-Thread學習筆記】如何抓取終端的網(wǎng)絡報文?
    的頭像 發(fā)表于 07-30 13:57 ?2862次閱讀
    【<b class='flag-5'>RT-Thread</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>】如何抓取終端的網(wǎng)絡報文

    RT-Thread學習筆記】用memwatch排除內存泄露

    RT-Thread學習筆記】使用memwatch排除內存泄露
    的頭像 發(fā)表于 07-30 14:01 ?2360次閱讀
    【<b class='flag-5'>RT-Thread</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>】用memwatch排除內存泄露

    基于RT-Thread Studio學習

    前期準備:從官網(wǎng)下載 RT-Thread Studio,弄個賬號登陸,開啟rt-thread學習之旅。
    的頭像 發(fā)表于 05-15 11:00 ?4018次閱讀
    基于<b class='flag-5'>RT-Thread</b> Studio<b class='flag-5'>學習</b>
    主站蜘蛛池模板: 免费毛片网| www.亚洲.com| 欧美一级片免费在线观看| 欧美综合影院| 久久亚洲成人| 草伊人| 天天做天天爱天天爽综合网| 喷潮白浆直流在线播放| 成年人午夜影院| 在线99热| 国产成人亚洲毛片| 婷婷久| 欧美一级特黄乱妇高清视频| 九色综合九色综合色鬼| 97影院理论午夜论不卡| 日日拍拍| 好爽的视频黄| 99热网站| 日韩免费| 国产福利网站| 免费一级特黄欧美大片勹久久网| 欧美性hd| www一区| 午夜精品视频5000| а8天堂资源在线官网| 轻点灬大ji巴太粗太长了h| 香蕉视频一级| 久久久久久9| 午夜撸| 视频在线免费观看| 2级毛片| 免费一级网站| 亚洲成网站www久久九| 1000部又爽又黄的做黄禁片| 99热最新在线观看| 欧美成人性色xxxxx视频大| bt天堂资源| 在线h网站| 性色免费视频| 国产一二三区在线| 欧美成人26uuu欧美毛片|