日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

chapter 15 运算符详解

發布時間:2025/3/15 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 chapter 15 运算符详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

15.1位運算符

1.位運算符都是要做Usual Arithmetic Conversion(其中有一步是Integer Promotion),所以在c語言中并不存在8為整數的位運算,操作數在進行運算前都至少被提升為int型了

ex1:

unsigned char c = 0xfc; unsigned int i = ~c;

因為在~c前已經先將c轉換為16位,所以為0x00fc.取反,如果理解為8位,則為0xfc取反,此時錯誤的結果為3.

2.在一定的取值范圍內,將一個整數左移1位相當于乘以2.此時一定的范圍主要是指,左移不能改變最高位(符號位)

3右移的規則

  • 如果是正數,最高位移入0
  • 如果為負數,最高位移入0or1(根據不同平臺確定,Implementation-defined,gcc為1)

tip:一般建議僅對無符號數進行操作,以減少出錯的可能。

?

4 異或的性質:不管0or1,與0異或保持原值不變,與1異或則取反

利用此性質可以進行就校驗:a1^a2^a3…..^an 如果結果為1,則其中的1的個數為奇數個,否則為偶數個

5RAID(redundant array of independent disks)獨立磁盤冗余陣列就是利用為操作的原理進行分割

不用變量交換兩數據

1

startAngle = startAngle+stopAngle; stopAngle = startAngle-stopAngle; startAngle = startAngle-stopAngle;

缺點:無法用于小數

2

x ^= y; y ^= x; x ^= y; 缺點:無法用于小數 (不要用這種方法,最好的還是利用temp進行交換) 5 sizeof 表達式 其中表達式并不求值。sizeof(i++),其中i不變 6 side effect &sequence point side effect:改變計算機存儲的值或者輸入輸出 sequence point:當執行到某一點時,之前的side effect必須作用完畢 在寫代碼時要熬注意同一個變量在兩個sequence point之間最多只允許改變一次 ex2 int a =0; a = a++; ex3 a[i++]=i; 雖然只改變一次也是不確定的 C99 Between the previous and next sequence point an object shall have its stored value modified at most once by the evaluation of an expression.Furthermore,the prior value shall be read only to determine the value to be stored.

轉載于:https://www.cnblogs.com/qtalker/archive/2013/04/03/2998701.html

總結

以上是生活随笔為你收集整理的chapter 15 运算符详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。