“ (a[PosOut] 8) | 0x00ff”表示先把a(bǔ)數(shù)組中第PosOut位置的數(shù)值按位左移8位,再將得到的結(jié)果和0x00ff做邏輯或操作。

10年品牌的成都網(wǎng)站建設(shè)公司,上1000+企業(yè)網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn).價(jià)格合理,可準(zhǔn)確把握網(wǎng)頁設(shè)計(jì)訴求.提供定制網(wǎng)站建設(shè)、商城網(wǎng)站建設(shè)、小程序定制開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等服務(wù),我們設(shè)計(jì)的作品屢獲殊榮,是您值得信賴的專業(yè)的建站公司。
C語言總并沒有左移函數(shù)和右移函數(shù)。左移和右移是位運(yùn)算符,僅僅適用于整數(shù)型的數(shù)據(jù)。
利用位操作:就是左移 就是右移 舉個(gè)例子:將a左移2位,然后賦給a a=2 也即是a=a2 在C語言中左移1位,相當(dāng)于乘2,右移相當(dāng)于除2。
1、其實(shí)很簡單,將第一個(gè)比如a[0]用一個(gè)變量保存,然后將后一個(gè)元素的值賦給前一個(gè),最后將保存a[0]的變量的值賦給最后一個(gè)元素,循環(huán) 。
2、不帶CY的循環(huán)移位是假設(shè)左移的話,是把最左位放到最右位了。帶CY的把最左位放進(jìn)CY,CY的原值放最右位。C語言的左移運(yùn)算可以理解為先將CY置0,然后執(zhí)行帶CY的循環(huán)移位操作。
3、循環(huán)移位就是把數(shù)值變成二進(jìn)制,然后循環(huán)移動的過程。
1、循環(huán)左移時(shí),用從左邊移出的位填充字的右端,而循環(huán)右移時(shí),用從右邊移出的位填充字的左側(cè)。這種情況在系統(tǒng)程序中時(shí)有使用,在一些控制程序中用得也不少。
2、因?yàn)槭前?進(jìn)制輸入的,8進(jìn)制的24換成10進(jìn)制就是20,換成2進(jìn)制就是00010100(以1字節(jié)表示)。而00010100循環(huán)右移2位后就是00000101,即10進(jìn)制的5,而5按8進(jìn)制輸出(輸出格式為%o),就是5。
3、save=x&0x……那一行,你這是多少個(gè)字節(jié)了?0x表示16進(jìn)制,每兩個(gè)字面字符就是一個(gè)字節(jié),即8位,你自己數(shù)數(shù)你的。取最低為應(yīng)該是與0x00000001,四個(gè)字節(jié),剛好32位。
4、但此結(jié)論只適用于該數(shù)左移時(shí)被溢出舍棄的高位中不包含1的情況。假設(shè)以一個(gè)字節(jié)(8位)存一個(gè)整數(shù),若a為無符號整型變量,則a=64時(shí),左移一位時(shí)溢出的是0,而左移2位時(shí),溢出的高位中包含1。
5、右移比較復(fù)雜,右移分兩種:(1)邏輯右移,左邊補(bǔ)0(移幾位補(bǔ)幾位),右邊移出去的丟掉。
當(dāng)前題目:c語言用函數(shù)實(shí)現(xiàn)循環(huán)左移 c語言用函數(shù)實(shí)現(xiàn)循環(huán)左移的方法
文章源于:http://chinadenli.net/article39/dshcssh.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、移動網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、ChatGPT、App設(shè)計(jì)、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)