⑴ c語言中>>和<<如何使用
C語言中<< 代表左移運算符,>> 代表右移運算符,位移位運算符是將數據看成二進制數,對其進行向左或向右移動若干位的運算。
<< 代表左移運算符:左移運算符用來將一個數的各二進制位全部左移若干位,移動的位數由右操作數指定,右操作數必須是非負值,其右邊空出的位用0填補,高位左移溢出則舍棄該高位。
例如:設無符號短整型變數a為0111(對應二進制數為0000000100010001),則:a<<3 結果為0888(對應二進制數為0000100010001000)。
>> 代表右移運算符:右移運算是將一個二進制位的操作數按指定移動的位數向右移動,移出位被丟棄,左邊移出的空位或者一律補0,或者補符號位,這由不同的機器而定。在使用補碼作為機器數的機器中,正數的符號位為0,負數的符號位為1。
例如:var temp = 56 >> 2 變數temp的值為 14,因為56 (即二進制的 00111000)向右移兩位等於14 (即二進制的 00001110) 。
(1)c語言里擴展閱讀:
相關運算規則:
1、在移位運算時,byte、short和char類型移位後的結果會變成int類型,對於byte、short、char和int進行移位時,規定實際移動的次數是移動次數和32的余數,也就是移位33次和移位1次得到的結果相同。
2、移動long型的數值時,規定實際移動的次數是移動次數和64的余數,也就是移動66次和移動2次得到的結果相同。
3、位移位運算符的優先順序:算術運算符優先於位移位運算符優先於關系運算符,位移位運算符是同級別的,結合性是自左向右。
⑵ c語言中&是什麼意思
C語言中&是關系運算,是雙目運算符。
運算符左右兩邊都需要表達式,&&在關系運算中表示「與」,比如m == 1 && n == 2,m == 1和n == 2同時為真,表達式就為真,否則為假。
而&即是雙目又是單目。雙目時表示「與」運算,0xff & 0xff將兩邊數值按位求與,最後得出結果單目是表示取地址。
(2)c語言里擴展閱讀:
C語言是一門面向過程、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。
比特右移(>>)運算符可以是算術(左端補最高有效位)或是邏輯(左端補 0)位移。例如,將 11100011 右移 3 比特,算術右移後成為 11111100,邏輯右移則為 00011100。因算術比特右移較適於處理帶整數,所以幾乎所有的編譯器都是算術比特右移。
運算符的優先順序從高到低大致是:單目運算符、算術運算符、關系運算符、邏輯運算符、條件運算符、賦值運算符(=)和逗號運算符。
參考資料來源:網路-C語言
⑶ 在C語言中 <<與<<=的區別
在C語言中 <<與<<=只有一個區別就是作用不同。
C語言中的>>和<<分別是左移運算符和右移運算符,用於整數在二進制形式的移位運算;
關系運算符用於比較運算。包括大於(>)、小於(<)、等於(==)、大於等於(>=);小於等於(<=)和不等於(!=)六種。
在C語言中x<<=1等於x=x<<1,是把x左移1位以後值保存回x里,x發生變化了。
(3)c語言里擴展閱讀
結合方向右結合(自右至左)單目運算符
!邏輯非運算符
~按位取反運算符
++自增運算符
--自減運算符
-負號運算符
(類型)類型轉換運算符
*指針運算符
&地址與運算符
sizeof長度運算符
⑷ c語言中//與/* */的區別
c語言中//與/* */的區別如下:
①是否為單行注釋
//是用於多種語言的單行注釋語句。/**/是注釋語句,不限制行數,在「/*」和「*/」之間的即為注釋。
②實用性的區別
//是用於多種語言的單行注釋語句,適用方便快捷,但是實用性不如多行注釋
/**/是注釋語句,不限制行數,在「/*」和「*/」之間的即為注釋,實用性大,但是符號鍵盤敲打麻煩。
程序編譯時,不對注釋內容作任何處理。注釋一般可出現在程序中的任何位置。注釋用來向用戶或程序員提示或解釋程序的功能作用。
(4)c語言里擴展閱讀
C語言的注釋符一般分為兩種,一種是以「/*」開頭,在中間加上注釋內容,並以「*/」結尾的段落注釋符。在「/*」和「*/」之間的即為注釋。
另一種是以「//」開頭,後面加註釋內容的單行注釋符。在「//」之後的即為注釋。
C語言的注釋符是以「/*」開頭並以「*/」結尾的串。在「/*」和「*/」之間的即為注釋。程序編譯時,不對注釋作任何處理。注釋可出現在程序中的任何位置。
注釋用來向用戶提示或解釋程序的意義。在調試程序中對暫不使用的語句也可用注釋符括起來,使翻譯跳過不做處理,待調試結束後再去掉注釋符。
⑸ c語言中「%=」是什麼意思
%是求模的意思,兩邊必須是整數類型的,求模常用符號為mod,就是小學學的求余運算符。
例如50%23=4,因為余數為4,所以在程序中必須保證兩邊為整數才是這個意思。
類似的還有 +=,-=,*=,/= 等。但是a%=b這種運算的效率,要高於a=a%b這種的效率,因為a%=b是直接在a上做求余運算,a=a%b則是先用一個臨時變數的來記錄好a的值,在進行運算,之後將運算結果再賦值給a,a=a%b要比直接a%=b多了兩次賦值運算,因而後者的效率更高。
例如:
a + b, c = b, c++
逗號運算符的優先順序是所有運算符中級別最低的,通常配合 for 循環使用。逗號表達式最右邊的子表達式的值即為逗號表達式的值。上例中,c++ 的值(c 自增之前的值)即為該表達式的值。
逗號運算符保證左邊的子表達式運算結束後才進行右邊的子表達式的運算。也就是說,逗號運算符是一個序列點,其左邊所有副作用都結束後,才對其右邊的子表達式進行運算。因此,上例中,c 得到 b 的值後,才進行自增運算。
以上內容參考:網路-C語言運算符
⑹ C語言中_是什麼意思有什麼用處
C語言中_是標識符中的合法字元之一。它通常用來隔離標識符中的各個單詞,例如room_1,也可以用來與另一同名變數進行區分,例如,int ab,_ab;
⑺ c語言中符號<<是什麼意思
符號<<在C語言中代表了左移運算符。
<<用來將一個數的各二進制位全部左移若干位,移動的位數由右操作數指定,右操作數必須是非負值,其右邊空出的位用0填補,高位左移溢出則舍棄該高位。
(7)c語言里擴展閱讀
將a的二進制數左移2位,右補0。若a=15,即二進制數00001111,左移2位得00111100,即十進制數60(為簡單起見,用8位二進制數表示十進制數15,如果用16位二進制數表示,結果是一樣的)。高位左移後溢出,舍棄。
左移一位相當於該數乘以2,左移2位相當於該數乘以2^2=4。上面舉的例子15<< 2=60,即乘了4。但此結論只適用於該數左移時被溢出舍棄的高位中不包含1的情況。
例如,假設以一個位元組(8位)存一個整數,若a為無符號整型變數,則a=64,即二進制數01000000時,左移一位時溢出的是0。而左移2位時,溢出的高位中包含1,則不符合上述結論。
⑻ c語言中 %c表示什麼
%c在C語言中代表字元型格式符。
%s在C語言中代表字元串型格式符。
%c和%s一般用在printf、sprintf等字元串格式化函數中,用於決定格式化參數的數據類型。如printf("%s", a)會將變數a作為字元串類型進行格式化。
printf()函數是格式化輸出函數, 一般用於向標准輸出設備按規定格式輸出信息。
printf()函數的調用格式為: printf("<格式化字元串>", <參量表>)。
格式輸出,它是c語言中產生格式化輸出的函數(在 stdio.h 中定義)。用於向終端(顯示器、控制台等)輸出字元。格式控制由要輸出的文字和數據格式說明組成。要輸出的文字除了可以使用字母、數字、空格和一些數字元號以外,還可以使用一些轉義字元表示特殊的含義。
(8)c語言里擴展閱讀:
C語言中所有格式化類型的定義:
1、%d/i
接受整數值並將它表示為有符號的十進制整數,i是老式寫法
2、%o
無符號8進制整數(不輸出前綴0)
3、%u
無符號10進制整數
4、%x/X
無符號16進制整數,x對應的是abcdef,X對應的是ABCDEF(不輸出前綴0x)
5、%f(lf)
單精度浮點數和雙精度浮點數用f(lf在C99開始加入標准,意思和f相同)
6、%e/E
科學計數法表示的數,此處"e"的大小寫代表在輸出時用的「e」的大小寫
7、%g/G
有效位數,如:%.8g表示單精度浮點數保留8位有效數字。
8、%c
字元型。可以把輸入的數字按照ASCII碼相應轉換為對應的字元
9、%s/S
字元串。輸出字元串中的字元直至字元串中的空字元(字元串以'