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

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

問題是這樣子的

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

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

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

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

高階實(shí)現(xiàn)?

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

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

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

目標(biāo)序列為:8 7 6 5 4 3 2 1

那么流程圖如下:

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

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

擴(kuò)展

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

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

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

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

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

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

那么流程圖如下:

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

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

總結(jié)

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

責(zé)任編輯:xj

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

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

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

    關(guān)注

    5187

    文章

    20169

    瀏覽量

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

    關(guān)注

    90

    文章

    3708

    瀏覽量

    96782

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

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

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

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

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

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

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

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

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

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

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

    EtherNet/IP轉(zhuǎn)Modbus借助網(wǎng)關(guān)模塊達(dá)成羅克韋爾PLC和變頻器協(xié)議轉(zhuǎn)換通信

    在工業(yè)自動(dòng)化生產(chǎn)環(huán)境,空壓機(jī)作為重要的氣源設(shè)備,其穩(wěn)定運(yùn)行和有效監(jiān)控對(duì)于整個(gè)生產(chǎn)流程至關(guān)重要。然而,不同廠家生產(chǎn)的空壓機(jī)可能采用不同的通信協(xié)議,這給集中監(jiān)控和管理帶來了挑戰(zhàn)。在本次案例,我們
    的頭像 發(fā)表于 03-10 11:02 ?685次閱讀
    EtherNet/IP轉(zhuǎn)Modbus借助網(wǎng)關(guān)模塊達(dá)成羅克韋爾PLC和變頻器<b class='flag-5'>協(xié)議</b><b class='flag-5'>轉(zhuǎn)換</b>通信

    EtherNet/IP轉(zhuǎn)Modbus網(wǎng)關(guān)模塊在羅克韋爾PLC與Modbus上位機(jī)協(xié)議轉(zhuǎn)換通訊的實(shí)戰(zhàn)案例

    在工業(yè)自動(dòng)化控制系統(tǒng),常常會(huì)遇到不同品牌和通信協(xié)議的設(shè)備需要協(xié)同工作的情況。本案例,客戶現(xiàn)場(chǎng)采用了 AB PLC,但需要控制的變頻器僅支持 Modbus
    的頭像 發(fā)表于 03-04 09:13 ?711次閱讀
    EtherNet/IP轉(zhuǎn)Modbus網(wǎng)關(guān)模塊在羅克韋爾PLC與Modbus上位機(jī)<b class='flag-5'>協(xié)議</b><b class='flag-5'>轉(zhuǎn)換</b>通訊<b class='flag-5'>中</b>的實(shí)戰(zhàn)案例

    EtherNet/IP轉(zhuǎn)Modbus借協(xié)議轉(zhuǎn)換網(wǎng)關(guān)模塊打通羅克韋爾PLC與上位機(jī)鏈路

    在工業(yè)自動(dòng)化控制系統(tǒng),常常會(huì)遇到不同品牌和通信協(xié)議的設(shè)備需要協(xié)同工作的情況。本案例,客戶現(xiàn)場(chǎng)采用了 AB PLC,但需要控制的變頻器僅支持 Modbus
    的頭像 發(fā)表于 03-01 11:07 ?724次閱讀
    EtherNet/IP轉(zhuǎn)Modbus借<b class='flag-5'>協(xié)議</b><b class='flag-5'>轉(zhuǎn)換</b>網(wǎng)關(guān)模塊打通羅克韋爾PLC與上位機(jī)鏈路

    EtherCAT轉(zhuǎn)modbus TCP借協(xié)議轉(zhuǎn)換網(wǎng)關(guān)模塊打通倍福PLC與上位機(jī)鏈路

    在智能工廠,需要把EtherCAT 設(shè)備的數(shù)據(jù)發(fā)送到modbus協(xié)議的scada系統(tǒng)。因?yàn)橹饕莔odbus協(xié)議,EtherCAT設(shè)備不能直接接入到系統(tǒng)。EtherCAT
    的頭像 發(fā)表于 03-01 11:06 ?766次閱讀
    EtherCAT轉(zhuǎn)modbus TCP借<b class='flag-5'>協(xié)議</b><b class='flag-5'>轉(zhuǎn)換</b>網(wǎng)關(guān)模塊打通倍福PLC與上位機(jī)鏈路

    labview數(shù)據(jù)類型與PLC 數(shù)據(jù)類型之間的轉(zhuǎn)換(來自于寫入浮點(diǎn)數(shù)到匯川 PLC的數(shù)據(jù)轉(zhuǎn)換關(guān)鍵的修改)

    為32位無符號(hào)整型U32 2、將U32拆分為兩個(gè)U16,分高低位寫入PLC 3、在PLC,將低位寄存器設(shè)置為浮點(diǎn)數(shù)數(shù)據(jù)類型 4、結(jié)果:PLC中一直無法正確轉(zhuǎn)換。 原因及解決方法: 1
    發(fā)表于 02-24 19:01

    ADS5271往serial interface registers輸入數(shù)據(jù)遇到的疑問求解

    往 serialinterface registers 輸入數(shù)據(jù)。先填充哪個(gè)寄存器,以及高低位。 順便介紹一下: Deskew pattern, Sync patter,custom
    發(fā)表于 02-14 06:17

    淺談CAN協(xié)議轉(zhuǎn)換模塊

    轉(zhuǎn)換模塊實(shí)現(xiàn)數(shù)據(jù)在不同系統(tǒng)間的無縫傳輸,提升系統(tǒng)的靈活性和可擴(kuò)展性。 一、基本概念 CAN協(xié)議轉(zhuǎn)換模塊,簡(jiǎn)而言之,將CAN總線上的數(shù)據(jù)轉(zhuǎn)換
    的頭像 發(fā)表于 02-05 16:37 ?754次閱讀

    協(xié)議轉(zhuǎn)換器是什么設(shè)備,協(xié)議轉(zhuǎn)換器指示燈含義

    協(xié)議轉(zhuǎn)換器,簡(jiǎn)稱協(xié)轉(zhuǎn),也稱為接口轉(zhuǎn)換器,是一種用于網(wǎng)絡(luò)通信的設(shè)備。它的主要作用是在不同的通信網(wǎng)絡(luò),將采用不同高層協(xié)議的主機(jī)進(jìn)行連接,使它們
    的頭像 發(fā)表于 01-29 11:51 ?3169次閱讀

    ADS1246實(shí)現(xiàn)單輸入模擬信號(hào)的模數(shù)轉(zhuǎn)換,在電路搭建遇到問題

    我想用ADS1246實(shí)現(xiàn)單輸入模擬信號(hào)的模數(shù)轉(zhuǎn)換,在電路搭建遇到以下問題:1、雙向參考端(REFP、REFN)怎么使用; 2、SCLK、CLK,如何選擇; 3、串入端口(DIN)不使用時(shí),能否置空; 4、模擬供電和數(shù)字供電,接
    發(fā)表于 01-21 09:07