chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內(nèi)不再提示

協(xié)議中遇到字節(jié)高低位轉(zhuǎn)換的問題如何實現(xiàn)

Q4MP_gh_c472c21 ? 來源:嵌入式ARM ? 作者:李肖遙 ? 2020-12-06 09:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

最近的協(xié)議中遇到字節(jié)高低位轉(zhuǎn)換的問題,于是偷懶上網(wǎng)查看,遇到類似的問題,也認識一個新的名字,叫做蝶式交換

問題是這樣子的

協(xié)議要求字節(jié)低位在左,高位在右,對每個字節(jié)做轉(zhuǎn)換處理,逐個交換其高低位,例如11010001,經(jīng)過0->7,1->6,2->5,3->4對應位的交換,變成10001011。

這里就需要有位操作的知識,參考位操作運算有什么奇技淫巧?(附源碼)

這里我們以8位數(shù)據(jù)高低位轉(zhuǎn)換為例子:

熟悉位操作,上述代碼實現(xiàn)起來就比較簡單。在嵌入式開發(fā)中這類問題通常使用蝶式交換法和查表法來實現(xiàn)。

高階實現(xiàn)?

查表法就是將一些值存到內(nèi)存中,在需要計算的時候查表,但是這種方法會占用額外的存儲空間。

所以這里主要介紹一下蝶式交換法,我們以8位數(shù)據(jù)轉(zhuǎn)換為例。

假設(shè)原始序列為:1 2 3 4 5 6 7 8

目標序列為:8 7 6 5 4 3 2 1

那么流程圖如下:

由此完成了整個位的逆序轉(zhuǎn)換,同樣以11010001為例,下面是具體的實現(xiàn)代碼:

交換字節(jié)的高低位并不是一個很常見的問題,遇到該問題時,需要經(jīng)過仔細的分析,加上對C語言位操作的熟練掌握,就能夠很好的解決這一類的問題。

擴展

那么我們將其擴展到16位半字數(shù)據(jù)的高低位轉(zhuǎn)換。

其實原理是跟8位的時候是一樣的,采用簡單的移位方式對數(shù)據(jù)的高低位進行轉(zhuǎn)換。熟悉位操作的話代碼就相對簡單了。

下面是對該思路的具體實現(xiàn)。

同樣的所謂的蝶式交換法,我引用了字節(jié)交換法的例子,我們可以演算一下:

假設(shè)原始序列為:a b c d e f g h i j k l m n o p

目標序列為:p o n m l k j i h g f e d c b a

那么流程圖如下:

由此完成了整個位的逆序轉(zhuǎn)換,完成了算法的拓展,以1001011001011011為例,下面是具體的實現(xiàn)代碼:

對于這種交換位的問題,在嵌入式開發(fā)中會經(jīng)常遇到,熟悉掌握位操作還有調(diào)試手段很重要。熟練的利用好C語言的移位操作,就能快速的解決此類問題。

總結(jié)

上面的問題關(guān)鍵還是位操作的靈活妙用,其次是寫了兩個打印二進制的函數(shù),方便使用,代碼可以直接使用,調(diào)試不易,歡迎點贊,在看,轉(zhuǎn)發(fā)也是厚愛,我們下一期,再見!

責任編輯:xj

原文標題:嵌入式編程中的高低位交換如何實現(xiàn)?

文章出處:【微信公眾號:嵌入式ARM】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

    關(guān)注

    5200

    文章

    20459

    瀏覽量

    334373
  • 編程
    +關(guān)注

    關(guān)注

    90

    文章

    3716

    瀏覽量

    97206

原文標題:嵌入式編程中的高低位交換如何實現(xiàn)?

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    工業(yè)協(xié)議轉(zhuǎn)換網(wǎng)關(guān)哪個好用?有什么推薦?

    智能化轉(zhuǎn)型的首要難題。工業(yè)協(xié)議轉(zhuǎn)換網(wǎng)關(guān)(Protocol Conversion Gateway)正是解決這一難題的關(guān)鍵設(shè)備,它充當著“翻譯官”和“交通樞紐”的角色,能夠實現(xiàn)不同協(xié)議間的
    的頭像 發(fā)表于 01-20 11:44 ?478次閱讀
    工業(yè)<b class='flag-5'>協(xié)議</b><b class='flag-5'>轉(zhuǎn)換</b>網(wǎng)關(guān)哪個好用?有什么推薦?

    嵌入式的浮點型數(shù)據(jù)轉(zhuǎn)換字節(jié)類型的三種方法

    單精度浮點型變量 double b; // 聲明雙精度浮點型變量 單精度(float型)與雙精度(double型)的區(qū)別 float 單精度浮點數(shù)內(nèi)存占 4 個字節(jié),用 32 位二進制描述
    發(fā)表于 01-07 06:28

    嵌入式編程中高低位交換如何實現(xiàn)

    問題是這樣子的: 協(xié)議要求字節(jié)低位在左,高位在右,對每個字節(jié)轉(zhuǎn)換處理,逐個交換其高低位,例如1
    發(fā)表于 12-24 08:25

    SWD調(diào)試通信協(xié)議

    給目標芯片 SWDIO 為雙向數(shù)據(jù)信號,由調(diào)試器和目標芯片雙向分時驅(qū)動 協(xié)議定義了長度為一個 SWCLK 周期的收發(fā)端轉(zhuǎn)換時間,在收發(fā)端轉(zhuǎn)換時間內(nèi),調(diào)試器和目標芯片都不驅(qū)動SWDIO,SWDIO 由上拉
    發(fā)表于 12-22 14:46

    為什么會有小端字節(jié)

    答案是,計算機電路先處理低位字節(jié),效率比較高,因為計算都是從低位開始的。所以,計算機的內(nèi)部處理都是小端字節(jié)序。 但是,人類還是習慣讀寫大端字節(jié)
    發(fā)表于 12-15 06:24

    RS485轉(zhuǎn)EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)詳細解析

    EtherCAT至RS232/RS485協(xié)議轉(zhuǎn)換網(wǎng)關(guān)在工業(yè)通信架構(gòu)承擔著關(guān)鍵角色,其核心功能在于實現(xiàn)高速實時工業(yè)以太網(wǎng)與經(jīng)典串行通信之間的無縫協(xié)議
    的頭像 發(fā)表于 11-08 16:30 ?730次閱讀
    RS485轉(zhuǎn)EtherCAT<b class='flag-5'>協(xié)議</b><b class='flag-5'>轉(zhuǎn)換</b>網(wǎng)關(guān)詳細解析

    協(xié)議轉(zhuǎn)換網(wǎng)關(guān)可以接入哪些設(shè)備

    工業(yè)生產(chǎn)場景存在大量自動化設(shè)備與傳感裝置,涵蓋生產(chǎn)執(zhí)行、環(huán)境監(jiān)測、設(shè)備控制等多個環(huán)節(jié),如各類傳感器、PLC控制器、儀器儀表、執(zhí)行器等。這些設(shè)備往往來自不同廠商、采用不同通信協(xié)議,若無法實現(xiàn)數(shù)據(jù)互通
    的頭像 發(fā)表于 09-03 13:43 ?748次閱讀
    <b class='flag-5'>協(xié)議</b><b class='flag-5'>轉(zhuǎn)換</b>網(wǎng)關(guān)可以接入哪些設(shè)備

    用于各種設(shè)備協(xié)議間做報文轉(zhuǎn)換的網(wǎng)關(guān)是什么

    功能是實現(xiàn)不同協(xié)議格式的報文(數(shù)據(jù))在傳輸過程的解析、轉(zhuǎn)換和轉(zhuǎn)發(fā)。 一、協(xié)議轉(zhuǎn)換網(wǎng)關(guān)的核心作用
    的頭像 發(fā)表于 08-11 14:08 ?1049次閱讀
    用于各種設(shè)備<b class='flag-5'>協(xié)議</b>間做報文<b class='flag-5'>轉(zhuǎn)換</b>的網(wǎng)關(guān)是什么

    激光焊接技術(shù)在焊接高低壓斷路器工藝的應用

    高低壓斷路器作為電力系統(tǒng)的核心保護裝置,其內(nèi)部關(guān)鍵部件的連接質(zhì)量直接影響著設(shè)備的開斷能力、載流穩(wěn)定性及長期運行可靠性。傳統(tǒng)的焊接方法在應對精密導電回路、密封殼體以及微型化組件時,常遇到熱損傷、變形
    的頭像 發(fā)表于 08-04 14:27 ?614次閱讀
    激光焊接技術(shù)在焊接<b class='flag-5'>高低</b>壓斷路器工藝<b class='flag-5'>中</b>的應用

    Modbus協(xié)議轉(zhuǎn)換:讓工業(yè)設(shè)備輕松“對話”

    在工業(yè)自動化,Modbus協(xié)議是設(shè)備通信的關(guān)鍵。本文將聚焦于Modbus協(xié)議的串口與網(wǎng)口轉(zhuǎn)換需求,并通過ZLG致遠電子PXB-6030D的案例,展示如何輕松
    的頭像 發(fā)表于 07-15 11:47 ?666次閱讀
    Modbus<b class='flag-5'>協(xié)議</b><b class='flag-5'>轉(zhuǎn)換</b>:讓工業(yè)設(shè)備輕松“對話”

    Ethernet IP轉(zhuǎn)Modbus網(wǎng)關(guān)在熱泵機組協(xié)議轉(zhuǎn)換技術(shù)實現(xiàn)

    ,例如空調(diào)熱泵機組的控制與監(jiān)控,我們可能需要將這兩種協(xié)議進行轉(zhuǎn)換,此時便需要借助開疆智能Ethernet IP轉(zhuǎn)Modbus網(wǎng)關(guān)KJ-EIP-101來實現(xiàn)數(shù)據(jù)和控制信號的無縫對接。來了解一下
    的頭像 發(fā)表于 06-04 17:22 ?543次閱讀
    Ethernet IP轉(zhuǎn)Modbus網(wǎng)關(guān)在熱泵機組<b class='flag-5'>中</b>的<b class='flag-5'>協(xié)議</b><b class='flag-5'>轉(zhuǎn)換</b>技術(shù)<b class='flag-5'>實現(xiàn)</b>

    Profinet轉(zhuǎn)DeviceNet網(wǎng)關(guān)協(xié)議轉(zhuǎn)換的技術(shù)實現(xiàn)與應用分析

    Profinet網(wǎng)關(guān)模塊之Profinet從站轉(zhuǎn)DeviceNet主站協(xié)議轉(zhuǎn)換方案說明,如下: 石家莊某生產(chǎn)車間內(nèi),原有現(xiàn)場設(shè)備包含配備了DeviceNet通訊卡的艾默生變頻器、AB的軟啟動器,它們
    的頭像 發(fā)表于 05-29 09:16 ?934次閱讀
    Profinet轉(zhuǎn)DeviceNet網(wǎng)關(guān)<b class='flag-5'>協(xié)議</b><b class='flag-5'>轉(zhuǎn)換</b>的技術(shù)<b class='flag-5'>實現(xiàn)</b>與應用分析

    使用FX3測試程序的數(shù)據(jù)流時,遇到了每8個字節(jié)重復的場景,是什么原因?qū)е碌模?/a>

    我在使用 FX3 測試程序的數(shù)據(jù)流時,遇到了每 8 個字節(jié)重復的場景。
    發(fā)表于 05-21 06:59

    CANFD協(xié)議轉(zhuǎn)換器:搭建通訊橋梁

    局域網(wǎng)絡靈活數(shù)據(jù)速率)協(xié)議與其他協(xié)議進行轉(zhuǎn)換,以便在物聯(lián)網(wǎng)環(huán)境實現(xiàn)設(shè)備之間的互聯(lián)互通。近期發(fā)現(xiàn)了兩款產(chǎn)品USR-CAN315(CANFD轉(zhuǎn)
    的頭像 發(fā)表于 04-19 09:48 ?899次閱讀
    CANFD<b class='flag-5'>協(xié)議</b><b class='flag-5'>轉(zhuǎn)換</b>器:搭建通訊橋梁

    興達易控modbus協(xié)議轉(zhuǎn)換網(wǎng)關(guān)配置步驟

    Modbus協(xié)議轉(zhuǎn)換網(wǎng)關(guān)作為工業(yè)自動化系統(tǒng)的關(guān)鍵組件之一,在實現(xiàn)不同設(shè)備之間的數(shù)據(jù)交換和協(xié)議轉(zhuǎn)換
    的頭像 發(fā)表于 03-16 16:07 ?871次閱讀
    興達易控modbus<b class='flag-5'>協(xié)議</b><b class='flag-5'>轉(zhuǎn)換</b>網(wǎng)關(guān)配置步驟