uint型變數倒轉問題。

2021-04-01 18:27:59 字數 659 閱讀 7155

在做gprs模組時遇到這樣乙個問題,dtu(資料終端裝置)連線到資料服務中心(dsc)時,dsc所獲得的ip位址四個位元組是倒過來的。-_-凸

現在得想個辦法把它倒轉回來。

其實這個問題以前遇到過,更一般地說,現在有乙個uint型的變數,也就是32位。

比如它四個八位的排列順序是

1 2 3 4

我現在想把它轉成

4 3 2 1

我目前能想到的辦法,就是按位與,然後移位,然後按位或。

也就是用四個數0xff000000,0x00ff0000,0x0000ff00,0x000000ff分別與它相與,

然後再把結果移位移到相應位置,

也就是第乙個位元組右移24位,第二個位元組右移8位,第三個位元組左移8位,第四個位元組左移24位。

然後相或,就得到倒轉過來的uint變數。

這是最原始的想法,比較膚淺。耗費時間空間也很多。不過總算能實現功能。

不過我記得以前解決這問題的時候還有一種巧妙的方法,以往印象比較深刻,現在就是死活想不起來了。不爽呀!-_-#

還望各位達人路過的時候,有什麼好的想法,儘管砸過來,不勝感激。^_^

下面是我用c#按照我的思路實現的**,很是膚淺,厚著臉皮拿出來雅俗共賞了。-_-

private uint uint_convert( uint uint_32)

bool型變數問題詳解

環境linux下 gcc編譯器 include include include int main void length bool 1 a 1 b 0 c 0 d 1 e 1 其實 有了這個例子就對bool有了一定了解。在c語言中沒有bool變數。一般是自己定義 define true 1 defi...

c 解決無法列印uint8 t 型別變數的問題

將uint8 t 轉化為unsigned 型別 使用一元運算子 和 運算子對應 測試 如下 include include include int main 執行結果如下 可見使用 運算子的原理也是進行型別轉換 把uint8 t 轉為 int 補充知識 c 語言printf列印各種資料型別的方法 u...

oracle的引用型變數和記錄型變數程式舉例

引用型變數 開啟oracle的輸出口 set serveroutput on declare 定義引用型變數,查詢並列印1232的姓名和薪水 pename varchar2 20 這2句和下面的2句效果一致 psal number pename emp.ename type psal emp.sal...