C語言實現按位倒序

2021-10-06 02:46:47 字數 582 閱讀 3472

最近遇到了乙個程式設計問題,怎樣使得乙個位元組的資料實現按位倒序?

舉例:0xe1按位倒序的話就是0x87,0x81按位倒序還是0x81

說明:最高位變成最低位,次高位變成次低位。依次類推,,,,

現在用指標來實現,**如下:

#include

struct group

;union

fit;

intmain

(int argc,

char

** ar**)

結果如下:

由此可見,**成功的將0xe1轉變為0x87。實現倒序其實有很多方法,但我想說的是這種轉變的思想:

巧妙的使用結構體和聯合體的方式去實現位元組倒序

這種方法是可以去深入討論的,另外還可以通過與或運算入棧出棧的方式實現。

C語言實現按位拷貝

在程式開發過程中,我們經常會用到按位拷貝一串二進位制數,在此提供乙個按位拷貝的函式給大家參考,函式原始碼如下 1 define char t char 2 define uint8 t unsigned char 3 define int8 t signed char 4 define uint16...

位元組按位倒序處理(二)

前一篇的位元組倒序是用for迴圈處理的,雖然也可以實現倒序,當相對低效,乙個位元組需要迴圈8次,每次迴圈內部又有6條指令,完成乙個位元組倒序都有執行48條指令。這裡提供另一種方法,相對於for迴圈高效不少,只需執行13條指令即可完成倒序,具體 如下圖。uint8 t byte change uint...

C語言按位與 按位或 按位異或 按位取反 (一)

與運算 兩者都為1為1,否則為0 1 1 1,1 0 0,0 1 0,0 0 0 或運算 兩者都為0為0,否則為1 1 1 1,1 0 1,0 1 1,0 0 0 非運算 1取0,0取1 1 0,0 1 10001 01110 異或運算 兩者相等為0,不等為1 1 1 0,1 0 1,0 1 1,0...