溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C語言的運算符用法介紹

發(fā)布時間:2021-08-26 18:20:03 來源:億速云 閱讀:183 作者:chen 欄目:開發(fā)技術(shù)

這篇文章主要講解了“C語言的運算符用法介紹”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“C語言的運算符用法介紹”吧!

目錄
  • 一、算數(shù)運算符(數(shù)學(xué)運算) 

    • + -

    • * / %

  • 二、邏輯運算符(判斷真假)

    • || &&

    • > >= < <=

    • !

    • ? : 三元運算符

  • 三、位運算符(重點) 

    • << 左移

    • >> 右移

    • & | ^ ~ 與 或 異或 取反

  • 四、賦值運算符

    • 五、內(nèi)存訪問符號

      •  () 限制符/函數(shù)訪問符

      • [] 內(nèi)存訪問ID符

      • {} 函數(shù)體限制符

      • -> 地址訪問符 

      • .變量訪問符 

      • &取址符

      • *取值符


    一、算數(shù)運算符(數(shù)學(xué)運算) 

    + -

    左右數(shù)據(jù)同一數(shù)據(jù)類型

    * / %

    注意

    乘/除法在很多CPU中無法實現(xiàn),或者需要多個CPU周期去實現(xiàn)嵌入式開發(fā)中,乘/除法可能需要第三方乘法庫才能實現(xiàn)乘/除法可能導(dǎo)致程序的移植性變差

    %取模 場景:

    獲取范圍數(shù)值時,如:int result=(x%100)+1; 則result值的范圍為[1.100]得到m進制的個位數(shù),如8進制個位數(shù): int a=x%8;介于取模的特性,可以用在循環(huán)數(shù)組結(jié)構(gòu)中獲取下標(biāo),0,1,2,3,0,1,2,3,0,1,2…

    二、邏輯運算符(判斷真假)

    || &&

    邏輯或 邏輯與

    > >= < <=

    大于 大于等于 小于 小于等于

    !

    ? : 三元運算符

    三元運算符

    三、位運算符(重點) 

    << 左移

    運算場景:
    左移1位,數(shù)據(jù)=數(shù)據(jù)2
    m左移n位,m=m2?

    >> 右移

    運算場景:
    右移1位,數(shù)據(jù)=數(shù)據(jù)/2
    m右移n位,m=m/2?

    注意:
    signed和unsigned的右移動是不同的
    signed修飾的變量的右移做while條件且變量為負(fù)數(shù)時,while會進入死循環(huán)(因為最高位=1,是符號位,永遠(yuǎn)無法右移為0)

    & | ^ ~ 與 或 異或 取反

    & 與
    bit中任意一位與0相&,該位都為0
    場景:

    屏蔽清零器 a=a | (~(0x1<<n))
    int a=0x1234;
    //屏蔽低8位
    a=a& 0xff00;
    int a=0x1234;
    //清零器,清除bit第五位的高電平,轉(zhuǎn)為低電平,其他位不變
    a=a & (~(0x1<<5));

    | 或
    bit中任意一位與1相|,該位都為1
    場景:

    保留/設(shè)置:設(shè)置高電平的方法,如設(shè)置指定位為高電平,其他位不變 a=a | (0x1<<n)
    int a=3;
    //使用左移可以更方便快速的讓第五位bit處于高電平,而且不影響其他位(嵌入式中bit最右邊通常讀作第0位)
    a= a| (0x1<<5)

    ^ 異或
    相同為0,不同為1
    1.通常用于數(shù)據(jù)加密算法,AES SHA1等
    2.數(shù)據(jù)交換(排序中的一種方法)

    a=a^b;

    b=a^b;
    a=a^b;

    ~ 取反
    按位取反

    四、賦值運算符

    = += -= &= ...
    賦值運算實際上是組合運算的縮寫,非原子性操作,volatile內(nèi)存可見特性會失效(實際上執(zhí)行了兩步,只靠volatile無法解決)

    五、內(nèi)存訪問符號

     () 限制符/函數(shù)訪問符

    1.限制符

    (a+b)*c

    1.函數(shù)訪問符

    void fun();

    [] 內(nèi)存訪問ID符

    內(nèi)存訪問ID符(C語言中并不局限于數(shù)組的訪問,通過指針可以訪問整個內(nèi)存空間)

    a[0]
    a[1]

    {} 函數(shù)體限制符

    函數(shù)體限制符

    -> 地址訪問符 

    .變量訪問符 

    &取址符

    &a;

    *取值符

    *a;

    感謝各位的閱讀,以上就是“C語言的運算符用法介紹”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對C語言的運算符用法介紹這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI