『壹』 請問怎麼用c語言給10個數左移P個位置 另外什麼是中間數組法! 最好是寫出來!
int reverse(int b[],int left,int right); 把int 改為void 就可以了。 另外N-p-2改為N-p1 N-p-1改為N-p
『貳』 C語言按位左移運算規則
C語言中按位左移的運算符為<<,其規則如下:
對於操作a<<n,
1 按照二進制值每位向高位(書寫上是向左)移動n位;
2 最高位(最左邊的)n位捨去;
3 最低位(最右邊)填加n個0.
簡單起見,用char型舉例如下:
例一
0x12 << 3 =>
B00010010 << 3 =>
B10010 000(這里最高位的三個0被捨去,其它依次左移,最低位補三個0) =>
0x90
即0x12 << 3 = 0x90
例二
0x9E << 2 =>
B10011110 << 2 =>
B01111000 (最高位10捨去,最低位補兩個0)=>
0x78
可以編寫如下程序驗證:
#include<stdio.h>
voidcheck(chara,intn)
{
printf("0x%hhx<<%d=0x%hhx ",a,n,a<<n);
}
intmain()
{
check(0x12,3);
check(0x9e,2);
return0;
}
其運行結果為
0x12<<3=0x90
0x9e<<2=0x78
可以看到與我們計算結果是相符的。
『叄』 如何用c語言實現循環左移
循環左移時,用從左邊移出的位填充字的右端,而循環右移時,用從右邊移出的位填充字的左側。這種情況在系統程序中時有使用,在一些控製程序中用得也不少。設有數據說明:
a=01111011,循環左移2位 正確結果: 11101101
過程:
b=a>>(8-2) 用來得到正常左移丟失的位和循環移位後其正確位置 b=00000001;
a=a<<2;左移 a=11101100
a=a|b; a=11101101
如果不是用中間變數 a=(a>>(8-2))|(a<<2)
總長度N(8 16 32)
循環左移n: (a>>(N-n))|(a>>n)
循環右移n: (a<<(N-n))|(a>>n)
C語言的位運算功能是其區別於其他大多數高級程序設計語言的特色之一,用它可以方便實現一些特殊功能,靈活掌握是用C程序編寫系統程序的基礎。
(3)最簡單的左移c語言語句擴展閱讀:
C語言高效編程技巧:
一:以空間換時間
計算機程序中最大的矛盾是空間和時間的矛盾,那麼,從這個角度出發逆向思維來考慮程序的效率問題
二:數學方法解決問題
數學是計算機之母,沒有數學的依據和基礎,就沒有計算機發展,所以在編寫程序的時候,採用一些數學方法會對程序的執行效率有數量級的提高。
三:使用位操作
實現高效的C語言編寫的第三招----使用位操作,減少除法和取模的運算。
在計算機程序中,數據的位是可以操作的最小數據單位,理論上可以用「位運算」來完成所有的運算和操作。一般的位操作是用來控制硬體的,或者做數據變換使用,但是,靈活的位操作可以有效提高程序運行的效率。
『肆』 C語言和單片機中的左移右移
# include "reg51.h" // 包含頭文件
#define uchar unsigned char
void delay02s(void) // 延時0.2s子程序
{
unsigned char i,j,k;
for ( i=2;i>0;i-- )
for (j=200;j>0;j-- )
for (k=250;k>0;k-- );
}
void main (void) // 主函數
{
uchar i,j;
while (1) // 死循環
{
j=0x01; // j初始化為0x01,左移初始值
for(i=0;i<8;i++) // for循環語句,完成8個循環
{
P1= ~ j; // 對變數j 中的值按位取反後,從P1口輸出
delay02s( ); // 延時0.2s
j= j<<1; // 左移1位
}
j=0x80; // 設置右移初始值j為0x80
for (i=0;i<8;i++)
{
P1= ~ j;
delay02s( );
j= j>>1; // 右移1位
}
}
}
『伍』 關於C語言的左移(<<)和右移(>>)
左移比較簡單,右邊補0(移幾位就補幾個0),左邊丟掉。
右移比較復雜,右移分兩種:
(1)邏輯右移,左邊補0(移幾位補幾位),右邊移出去的丟掉。
(2)算術右移,左邊補最高位(即原來的最高位是0就補0,是1就補1,因為最高位代表符號,這樣可以保證負數不會變成正數),右邊丟掉。
『陸』 C語言中怎樣表示移位啊例如將某個值左移兩位
利用位操作:"<<"就是左移 ">>"就是右移
舉個例子:將a左移2位,然後賦給a
a<<=2 也即是a=a<<2
在C語言中左移1位,相當於乘2,右移相當於除2。
『柒』 C程序中,左移「<<」、右移「>>」 的具體用法是什麼
C語言中,「<<」為左移運算符,「>>」為右移運算符。
具體使用方法如下:
1、左移運算符(<<)
將一個運算對象的各二進制位全部左移若干位(左邊的二進制位丟棄,右邊補0)。
例:a = a << 2 將a的二進制位左移2位,右補0,
左移1位後a = a * 2;
若左移時舍棄的高位不包含1,則每左移一位,相當於該數乘以2。
2、右移運算符(>>)
將一個數的各二進制位全部右移若干位,正數左補0,負數左補1,右邊丟棄。
操作數每右移一位,相當於該數除以2。
例如:a = a >> 2 將a的二進制位右移2位。
左補0 or 補1 得看被移數是正還是負。
『捌』 c語言 左移運算
char c; 程序第二行定義了c是char類型
字元是與ASCII代碼對應的,ASCII值你可以簡單的理解為二進制數
if(!c<=32||c>100)) 其中32代表的是字元空格,100代表的是字元'd',具體見編程書附錄里常用字元與ASCII代碼對照表
『玖』 c語言 編程 數組左移怎麼編啊初學者哦!!
每一個循環for(i=0;a[i+2]!='\0';i++)錯了,應該是for(i=m;a[i+2]!='\0';i++),把m位之後的字元放到T1數組中
『拾』 C語言左移
左移就是把二進制數向左移動,右邊補0,0的二進制全是0,左移之後右邊再補0,移5和移6沒區別
<<後面的數字表示移多少位