unsigned char crol(unsigned char c,unsigned b)
在安順等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供做網(wǎng)站、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作按需策劃設(shè)計,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,營銷型網(wǎng)站,外貿(mào)網(wǎng)站建設(shè),安順網(wǎng)站建設(shè)費(fèi)用合理。
{ //左移
unsigned char left;left=cb;
unsigned char right;right=c( sizeof (unsigned char )-b) ;
return left|right;
}
unsigned char cror(unsigned char c,unsigned b)
{ //右移
unsigned char right;
right =cb;
unsigned char left ;
left=c( sizeof (unsigned char )-b) ;
return left|right;
}
默認(rèn)只有算術(shù)右移。 要循環(huán)右移需要把最低位保存下來, 然后賦值到最左。
unsigned?int?func(unsigned?int?n)
{
unsigned?int?v=n1;
n=1;
if(v)?n|=1(sizeof(unsigned?int)-1);
return?n;
}
#include?stdio.h
#include?math.h
unsigned?fun(unsigned?num,?int?n)
{
if(n??0)
{
//sizeof(unsigned)*8計算變量所占位數(shù),如int型占32位
return?(num??(sizeof(unsigned)*8?-?n))?|?(num??n);?//先高位移動,再低位移動后,兩者按位或,相當(dāng)把低位溢出的又添加到了高位,實現(xiàn)了循環(huán)的效果?
}?
else?
{
return?(num??(sizeof(unsigned)*8?-?abs(n)))?|?(num??abs(n));
}
}
void?main(void)?
{
printf("%u\n",?fun(2,?-34));
}
函數(shù)功能:將輸入字符串 src循環(huán)右移n位 result為輸出結(jié)果
要求:以效率最高的方式實現(xiàn)
示例:
“abcde” --2-- "deabc"
"abcde"--8--"cdeab"
void right_shift_r(const char* src,char* result,unsigned int n)
{
? ? unsigned int len = strlen(src);
int i=0;
? ? for(i=0;ilen;i++)
{
? ? ? ? ? ? result[i] = src[i+n]%len;?
}
}
#include stdio.h
void fun(int value,int n,int dire)
{
if(dire==0) return;
int x=1(sizeof(int)*8-1);
int temp;
int i;
if(dire0)
{
for(i=0;in;i++)
{
temp=value1;
value=1;
if(temp) value|=x;
}
}
else
{
for(i=0;in;i++)
{
temp=value x;
value=1;
if(temp) value|=1;
}
}
}
void main()
{
int x=0x55555555;
fun(x,1,1);
printf("%x",x);
}
代碼文本:
#include "stdio.h"
int myfun(int m,int n){//十進(jìn)制循環(huán)右移
int tmp,i;
for(tmp=m,i=0;tmp;i++,tmp/=10);
if((n%=i)0) n+=i;
for(tmp=i-n,i=1;tmp;i*=10,tmp--);
for(tmp=n,n=1;tmp;n*=10,tmp--);
return m%n*i+m/n;
}
int main(int argc,char *argv[]){
int n,m;
printf("Please enter n m(int 0n,m1000000000)...\n");
scanf("%d%d",n,m);
printf("你輸入的數(shù)是: %d\n",n);
printf("右移%d位后是: %d\n",m,myfun(n,m));
return 0;
}
當(dāng)前標(biāo)題:c語言循環(huán)右移的庫函數(shù),c語言把字符串循環(huán)右移
URL標(biāo)題:http://vcdvsql.cn/article22/hspejc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、網(wǎng)站制作、網(wǎng)站設(shè)計公司、品牌網(wǎng)站制作、動態(tài)網(wǎng)站、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)