C語(yǔ)言總并沒(méi)有左移函數(shù)和右移函數(shù)。左移和右移是位運(yùn)算符,僅僅適用于整數(shù)型的數(shù)據(jù)。
創(chuàng)新互聯(lián)專注于攸縣網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供攸縣營(yíng)銷型網(wǎng)站建設(shè),攸縣網(wǎng)站制作、攸縣網(wǎng)頁(yè)設(shè)計(jì)、攸縣網(wǎng)站官網(wǎng)定制、微信小程序開(kāi)發(fā)服務(wù),打造攸縣網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供攸縣網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
先說(shuō)第一個(gè)問(wèn)題:
比如用查表法將結(jié)果保存到變量i中,查表變量為x,則i=table[x],記住c語(yǔ)言里面數(shù)組是從0開(kāi)始的,比如說(shuō)上面的0x01就是table[0],0x02是table[1],以此類推。
再說(shuō)第二個(gè)問(wèn)題:
比如說(shuō)從p1.0口發(fā)送出去,則可以寫為
sbitout=p1^0;//定義out為p1.0口,這樣今后好寫程序
chari;
for(i=0;i8;i++)
{
out=data0x80;//因?yàn)楦呶辉谇?,將它寫成二進(jìn)制就明白了
data=1;
}
上面的程序就能搞定了;
應(yīng)該是所有的單片機(jī)都有cy位(不知道浮點(diǎn)dsp有沒(méi)有);
c語(yǔ)言中左移和右移之后低位或高位自動(dòng)補(bǔ)零,cy位也保持為零(視編譯器而定,這個(gè)得看編譯器手冊(cè)),有些編譯器提供了循環(huán)移位的函數(shù);
還有什么不明白的補(bǔ)充問(wèn)題就是
函數(shù)功能:將輸入字符串 src循環(huán)右移n位 result為輸出結(jié)果
要求:以效率最高的方式實(shí)現(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;?
}
}