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...