在做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...