微控制器c語言程式設計語句temp temp《1和temp temp《1 1怎麼理解,他們有什麼區別

2021-03-26 11:41:37 字數 3426 閱讀 4149

1樓:匿名使用者

temp=temp<<1表示將temp左移一位;temp=temp<<1+1則是將temp左移一位後加1。左移的含義:比如temp=00001111b(二進位制),那麼temp<<1的結果是00011110,也就是temp的資料位依次向左移動一位,最高位可以認為被捨棄,最低位由0補齊。

這是基本的位運算,可以參考相關的c語法書目。

2樓:匿名使用者

temp = temp << 1 右移一位,相當於乘以2

temp=temp<< 1+1 +運算優先順序高於<<,本句相當於temp=temp<<2,右移2位,相當於乘以4

3樓:匿名使用者

temp=temp<<1 等同於 temp = temp * 2;

temp = temp<<1 + 1 等價於 temp = temp * 2 + 1;

temp = (temp<<1)+1;是什麼意思?

4樓:匿名使用者

du你好!

zhi這屬於單片dao機c語言程式設計語句:

專 temp=temp<<1+1是指將temp左移一位屬後加1。

參考資料:

temp=temp<<1表示將temp左移一位;temp=temp<<1+1則是將temp左移一位後加1。左移的含義:比如temp=00001111b(二進位制),那麼temp<<1的結果是00011110,也就是temp的資料位依次向左移動一位,最高位可以認為被捨棄,最低位由0補齊。

這是基本的位運算,可以參考相關的c語法書目。

求解微控制器中c編的幾個指令 temp <<= 1 和temp << 1的區別 if(!(p1 & temp)) 這個是什麼意思?

5樓:匿名使用者

temp << 1;計算 temp 左移一位的值,語句結束後temp沒有變化

temp <<= 1相當於temp=temp << 1也就是 計算 temp 左移一位的值,並把版這個值賦給tempif(!(p1 & temp)) 就是 計算 p1 與 temp按位權

與運算的值,然後判斷這個值是否為0

if(!(p1 & temp))

else

6樓:匿名使用者

temp <<= 1是指temp左移1位,再送回temp,相當於temp=(temp<<1)。

temp <<=1是將temp左移1位。

if(!(p1 & temp)) 是指如果p1的值和temp的值相與專的結果為0,就執行if語句後屬面的操作。

7樓:寂寞

temp << 1 是把temp左移1位

temp <<= 1 是把 temp << 1 的結果賦值給 temp

if(!(p1 & temp)) 是判斷p1與temp按位與的結果是否不為0

c語言 "temp<<1"是什麼意思,說原理

8樓:

位移運算子,變數值以二進位制的形式,往高位移動,最高位被截掉,最低位補0。

9樓:獅子**的青春

temp的二進位制左移一位

比如5<<1;

5=0101;

左移一位變為:1010 = 10;

在微控制器的c語言中,temp=temp<<1,是左移一位,最低位補零,還是左移一位,最高位補到最低位?

10樓:匿名使用者

這跟你的編譯器有關吧,如果是keil c51 應該是是左移一位,最低位補零。具體你可以反彙編看一下。

11樓:匿名使用者

據我所知, 幾種c/c++編譯器, 《左移,都是最低位補零, 這不會有二義性.

幾種c/c++編譯器只是在對有符號數 位右移》 倒是有區別.

temp=0x1|(temp<<1) 什麼意思

12樓:匿名使用者

,|1、假設temp=0x1|(temp<<1);是c語言語句。

2、0x1表示16進製制的1,|是按位或運算子,《是左移運算子。內3、從等式看是容把16進製制1跟temp左移一位後的值按位或,然後把結果賦值給temp。

4、16進製制數的基數是16,是逢16進製制的一種計數方式,用0~9,a~f表示。

5、左移運算是把數值轉換成二進位制數,然後整體向左移動,移出部分丟失,右邊補0。

6、按位或是把兩個運算元都轉換成2進製,然後對兩個運算元進行按位加。

13樓:匿名使用者

temp左移一位後,結果與 0x1 進行或運算。

c語言中temp=1<

14樓:捐你妹

你要用二進

制的方式來考慮這種問題,比如你說的

i=3,temp = 1<是

多少。首先對於1來說,二進位制就內是0001,移位後是1000,然容後轉成10進製就是8了。

一般來說,這種移位是為了做與運算的時候判斷這一位是否為1。

對於你提的後面那一串就是將wgm01,wgm00,***01,***00,cs00,cs02這幾個位置都置一。這個一般是作為判斷位來使用的。

tmp1*=2與temp<<1有什麼區別

15樓:匿名使用者

從結果上看

*=2和抄

<<=1

操作結果相同

類似的,/=2和》=1相同

但是效率上不同,移位運算的速度要比乘除法快得多從速度上來說

移位》加法》減法》乘法》除法

所以如果通過移位可以做到的話,盡量用移位,而不用其他運算左移和右移 是相似但完全不同的兩種操作

左移是所有位左移,最高位丟失,最低位補0

右移是所有位右移,最低位丟失,最高位補0

16樓:

temp *= 2 //將temp加倍

temp << 1 //將temp左移一bai位在一般情況下,du都是zhi把temp加倍。但是一dao些例外情況讓二者有區別。內

第一行必容須保證temp是整數型別(支援*=運算子),並且如果temp太大可能超出範圍;

第二行是從位的層面上操作,自然快很多,並且適用於任何型別,同時移位的時候會捨棄超出範圍的資料

c語言 temp>>1和temp=temp>>1的區別

17樓:匿名使用者

其實就是逗號運算

temp>>1是不給temp賦值的。

temp=temp>>1會把變化的值又賦給temp

微控制器,sbit什麼意思,微控制器C程式設計sbit指令是什麼意思

sbit是c51擴充套件的變數型別,是定義特殊功能暫存器的位變數。典型應用是 sbit p0 1 p0 1 即定義p0 1為p0口的第2位,以便進行位操作。在c語言裡,如果直接寫p1.1,c編譯器並不能識別,而且p1.1也不是一個合法的c語言變數名,所以得給它另起一個名字,這裡起的名為p1 1,可是...

微控制器C語言程式

define uint unsigned int就是用unit替換unsigned int,unsigned int是c語言關鍵字,unit比較簡單 void delayms uint x 定義乙個函式,無返回值,引數是個 無符號整形的變數叫 x uchar 上面不是定義了unsigned char...

微控制器程式設計求教,微控制器程式設計問題求教

好奇心較強,把兩個程式都測試了一下。做而論道的匯程式設計序,在自動滅燈之後,再按下按鍵,可以使燈重新開啟 gaplee 的c程式,自動滅燈之後,再按下按鍵,燈還是滅的,必須再按一下,燈才亮。按兩下,燈才亮,恐怕不符合題目的要求。做而論道的匯程式設計序,10秒的亮燈時間,誤差不足11毫秒 gaplee...