欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: C語言<<或>>的問題 [打印本頁]

作者: xnysfh    時間: 2023-6-17 13:32
標題: C語言<<或>>的問題
if(BLINK_KEY == 0)
           {         
               if(BLINK_Shake == Long_Set_Sak)
              {
                       if(Blink_State ++ >= 3)        Blink_State = 0;  
                       DataBuffer[0] &= 0xcf;
                       DataBuffer[0] |= (Blink_State << 4);
                       spi_send_en = 1;
               }
               if(BLINK_Shake++ >(Long_Set_Sak + 1))                BLINK_Shake = Long_Set_Sak + 1;
           }

>>4是去掉低四位
<<4是為什么


作者: xuyaqi    時間: 2023-6-17 14:09
>>4是右移四位
作者: 人中狼    時間: 2023-6-17 14:13
不是去掉,是左右移位
作者: Hephaestus    時間: 2023-6-17 14:18
<<是左移,右邊補零。
作者: chxelc    時間: 2023-6-17 14:41
<<4左移4就是:丟棄高4位,0補低4位
如:二進制數 1011 0110 <<4 就變成 0110 0000

>>4右移4就是:丟棄低4位,0補高4位
如:二進制數 1011 0110 >>4 就變成 0000 1011

以上只針對無符號整型數據,其它數據類型更復雜一些。
作者: 13205495918    時間: 2023-6-17 15:37
5樓正解,這個要分邏輯移位和算術移位的,建議找本書好好看看這一部分
作者: 王秋冬    時間: 2023-6-17 17:04
向5樓致敬,講解的詳細,多謝。
作者: 君工創    時間: 2023-6-17 22:27
<<左移4位,低4位補0。
作者: lhj1120    時間: 2023-6-18 07:44
低四位左移到高四位,低四位補0
作者: xnysfh    時間: 2023-6-21 10:42
chxelc 發表于 2023-6-17 14:41
4 就變成 0000 1011

以上只針對無符號整型數據,其它數據類型更復雜一些。

參考了五樓的說明,已解決問題,謝謝大家參與討論
作者: shuaishuai01    時間: 2023-6-21 10:55
>>4不是去掉第四位,這是右移4位,空出的高位用0補齊,例如:0110 0010   右移4位以后的結果為0000 0110
<<4為左移4位,空出的低位用0補齊,例如:0110 0010   左移4位以后的結果為0010 0000
作者: oldhawk    時間: 2023-6-21 11:21
<<4  , DataBuffer[0] |= (Blink_State << 4);  將狀態高四位去掉,低位向高位移動4位,同時低四位補0
作者: 633321    時間: 2023-6-21 11:47
移位后用0替代
作者: 芯菲    時間: 2023-6-25 10:34
左移4位,并補4個0。
作者: 樂大起大落    時間: 2023-6-25 20:20
<<4 是左移4位,把低四位移到高四位,例如 1111 0001    <<4    變成   0001 0000
作者: 私塾    時間: 2023-7-10 10:16
建議偶爾去b站復習復習基礎知識在學習新知識的時候別忘了回頭看看
作者: 2027231725    時間: 2023-7-10 16:55
你可以自己先表示成二進制移位看看
作者: AwmSword    時間: 2023-7-12 14:23
<<,>>是左右移位
作者: wyh1342023    時間: 2023-7-13 16:24
對于2進制,>>4往右移動四位,左邊缺失補零,<<4往左移動四位,右邊確實補零。
對于10進制表示來說,往左移四位等于原數乘上2的4次方(16),往右移四位等于原數除以2的4次方(16)
作者: XIAOCAO123    時間: 2023-7-13 16:44
>>4這是右移4位,然后高四位補零
作者: hihohopoiui    時間: 2023-7-14 08:24
不是去掉,是左右移位
作者: 寧安樂    時間: 2023-7-14 10:23
>>4是右移四位,<<4是左移四位,就比如一個二進制數原來為10110110,如果取這個數10110110>>4的話,就是整體的這個數往右移了四位,那么原本的低四位就移出去了,而高四位就恰好移到了低四位的位置,后面移過來的就補零,也就是最后數值為00001011,也就如你所說好像去掉了低四位,同理<<4也是這個原理




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1