整型陣列左移或右移位簡單操作

2021-06-09 14:21:24 字數 453 閱讀 3821

// 函式功能:將陣列元素迴圈左移或右移一位

輸入引數:

輸入的陣列 input

輸入陣列的長度

shiftn:取值為 1 或  -1 :  1 表示右移, -1表示左移

void shift(int* input, int n, int shiftn)

if (shiftn < 0)

}int _tmain(int argc, _tchar* argv)

int a=;

int n = sizeof(a)/sizeof(int);

int shiftn = -13;

shiftn = shiftn%n;

int i;

for(i=0;ishift(a,n,shiftn/abs(shiftn));

for(i=0;iprintf("%4d",a[i]);

return 0;

移位操作 邏輯左移 邏輯右移 算術右移

常常會混淆移位操作的概念,因此在這裡記錄下測試程式。public class main 關於二進位制數加減法 原碼 反碼 補碼 正數 原碼就是原始數值的二進位制表示形式,最高位符號位是0 反碼是原碼的按位置取反 補碼是反碼的基礎上 1 負數 原碼就是最高位為1的表示形式 反碼是最高位的符號位不變,其...

陣列迴圈左移或右移(陣列翻轉)

一道程式設計題 陣列翻轉或者說是陣列迴圈移動。例如有陣列a 1,2,3,4,5,迴圈左移動2位變成 3,4,5,1,2。此題的解法很簡單也很巧妙,首先將陣列逆置 變為 5 4 3 2 1 然後將陣列分成兩個部分,5,4,3 2,1 然後分別繼續逆置兩個部分,即為所求 3 4 5 1 2。迴圈左移2位...

按位與或非 按位異或 有符號左移位 有符號右移位

位運算的效能大家想必是清楚的,效率絕對高。相信愛好原始碼的同學,在學習閱讀原始碼的過程中會發現不少原始碼使用了位運算。但是為啥在實際程式設計過程中應用少呢?想必最大的原因,是較為難懂。不過,在面試的過程中,在手寫 過程中,寫出一兩個位運算的 還會讓面試官眼前一亮的。位運算常用的運算子包括 按位與 按...