<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 24,  comments - 29,  trackbacks - 0

            Java語言中的表達(dá)式是由運(yùn)算符與操作數(shù)組合而成的,所謂的運(yùn)算符就是用來做運(yùn)算的符號(hào)。
            在Java中的運(yùn)算符,基本上可分為算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、賦值運(yùn)算符、轉(zhuǎn)型運(yùn)算符等。

    一、算術(shù)運(yùn)算符
           所謂算術(shù)運(yùn)算符,也就是我們數(shù)學(xué)中學(xué)到的加、減、乘、除等運(yùn)算。這些操作可以對(duì)幾個(gè)不同類型的數(shù)字進(jìn)行混合運(yùn)算,為了保證操作的精度,系統(tǒng)在運(yùn)算的過程中會(huì)做相應(yīng)的轉(zhuǎn)換。
          1、數(shù)字精度
           所謂數(shù)字精度,也就是系統(tǒng)在做數(shù)字之間的算術(shù)運(yùn)算時(shí),為了盡最大可能地保持計(jì)算機(jī)的準(zhǔn)確性,而自動(dòng)進(jìn)行相應(yīng)的轉(zhuǎn)換,將不同的數(shù)據(jù)類型轉(zhuǎn)變?yōu)榫茸罡叩臄?shù)據(jù)類型。規(guī)則如下:
          1)當(dāng)使用運(yùn)算符把兩個(gè)操作數(shù)結(jié)合到一起時(shí),在進(jìn)行運(yùn)算前兩個(gè)操作數(shù)會(huì)轉(zhuǎn)化成相同的類型。
          2)兩個(gè)操作數(shù)中有一個(gè)是double類型的,則另一個(gè)將轉(zhuǎn)換成double型。
          3)兩個(gè)操作數(shù)中有一個(gè)是float類型的,則另一個(gè)將也轉(zhuǎn)換成float型。
          4)兩個(gè)操作數(shù)中有一個(gè)是long類型的,則另一個(gè)將也轉(zhuǎn)換成long型。
          5)任何其它類型的操作,兩個(gè)操作數(shù)都要轉(zhuǎn)換成int類型。
          2、整數(shù)型運(yùn)算(int型)
           對(duì)于int型的相關(guān)操作,加、減、乘的結(jié)果都是非常容易理解的,重點(diǎn)講一下除(/)的運(yùn)算。
           兩個(gè)整數(shù)相除的結(jié)果是整數(shù),這一點(diǎn)與數(shù)學(xué)中是不同的,在Java中,兩個(gè)整數(shù)相除的結(jié)果類似于數(shù)學(xué)中的求模運(yùn)算。整除的余數(shù)是用%表示,例如15 / 2 = 7,而不是7.5,15 % 2 = 1。我們用程序驗(yàn)證一下:

    /*兩個(gè)整數(shù)相除及求余數(shù)*/

    public class Divide
    {
       public static void main(String[] args)
       {
          int a = 15;
          int b = 2;
          double c = 2;
          System.out.println(a + "/" + b + "=" + (a / b));
          System.out.println(a + "%"+ b + "=" + (a % b));
          System.out.println(a + "/" + c + "=" + (a / c));
          System.out.println(a + "%" + c + "=" + (a % c));
        }
    }

    輸出結(jié)果:
                     15 / 2 = 7
                     15 % 2 = 1
                     15 / 2.0  =  7.5
                     15 % 2.0 = 1.0

            3、自增和自減運(yùn)算符
            在循環(huán)與控制中,我們經(jīng)常會(huì)用到類似于計(jì)數(shù)器的運(yùn)算,它們的特征是每次的操作都是加1或減1。在Java中提供了自增、自減運(yùn)算符,X++使變量X的當(dāng)前值每次增加1,而X--是自減運(yùn)算符,每次操作使當(dāng)前X的值減1。例如:

    /*測(cè)試自增、自減操作*/

    public class SelfAction
    {
       public static void main(String[] args)
       {
         int x = 10;
         int a = x+ x++;
         System.out.println("a =" + a);
         System.out.println("x =" + x);
         int b = x + ++x;
         System.out.println("b =" + b);
         System.out.println("x =" + x);
         int c = x + x--;
         System.out.println("c =" + c);
         System.out.println("x =" + x);
         int d = x + --x;
         System.out.println("d =" + d);
         System.out.println("x =" + x);
       }

    輸出結(jié)果:
                     a = 20
                     x = 11
                     b = 23
                     x = 12
                     c = 24
                     x = 11
                     d = 21
                     x = 10

    二、關(guān)系運(yùn)算符
            Java具有完美的關(guān)系運(yùn)算符。這些關(guān)系運(yùn)算符基本上同數(shù)學(xué)中的關(guān)系運(yùn)算符是一致的。“>”大于、“<”小于、“>=”大于等于、“<=”小于等于、“==”等于、“!=”不等于。例如:

    /*關(guān)系運(yùn)算符測(cè)試*/

    public class RelationTest
    {
       public static void main(String[] args)
       {
         boolean x, y, z;
         int a = 15;
         int b = 2;
         double c =15;
         x = a > b;  //true;
         y = a < b;  //false;
         z = a != b;  //true;
         System.out.println("x =" + x);
         System.out.println("y =" + y);
         System.out.println("z =" + z);
       }
    }
    輸出結(jié)果:
                     x = true
                     y = false
                     z = true

    三、邏輯運(yùn)算符
            在Java語言中有三種邏輯運(yùn)算符,它們是NOT(非,以符號(hào)“!”表示)、AND(與,以符號(hào)“&&”表示、)OR(或,以符號(hào)“||”表示)。
            1、NOT運(yùn)算符
             NOT運(yùn)算符是用來表示相反的意思。
                            NOT邏輯關(guān)系值表
                              

    A

    !A

    true

    false

    false

    true


             2、AND運(yùn)算符
             AND運(yùn)算符表示“與”的意思,也就是和的意思。
                           AND邏輯關(guān)系值表

    A

    B

    A&&B

    false

    false

    false

    true

    false

    false

    false

    true

    false

    true

    true

    true


             3、OR運(yùn)算符
             OR運(yùn)算符是用來表示“或”就像我們?nèi)粘I钪欣斫獾囊粯樱瑑烧咧灰幸粋€(gè)為“真”,結(jié)果就為“真”。
                         OR邏輯關(guān)系值表

    A

    B

    A||B

    false

    false

    false

    true

    false

    true

    false

    true

    true

    true

    true

    true


    /*邏輯運(yùn)算符測(cè)試*/

    public class LogicSign
    {
       public static void main(String[] args)
       {
         boolean x, y, z, a, b;
         a = 'a' > 'b';
         b = 'R' != 'r';
         x = !a;
         y = a && b;
         z = a || b;
         System.out.println("x =" + x);
         System.out.println("y =" + y);
         System.out.println("z =" + z);
       }
    }
    輸出結(jié)果:
                     x = true
                     y = false
                     z = true

           4、“短路”現(xiàn)象
           在運(yùn)用邏輯運(yùn)算符進(jìn)行相關(guān)的操作時(shí),我們會(huì)遇到一種很有趣的現(xiàn)象;短路現(xiàn)象。
           對(duì)于true && false根據(jù)我們的講述,處理的結(jié)果已經(jīng)是false了,也就是說無論后面是結(jié)果是“真”還是“假”,整個(gè)語句的結(jié)果肯定是false了,所以系統(tǒng)就認(rèn)為已經(jīng)沒有必要再進(jìn)行比較下去了。也就不會(huì)再執(zhí)行了,這種理象就是我們所說的短路現(xiàn)象。

    四、位運(yùn)算符
              所有的數(shù)據(jù)、信息在計(jì)算機(jī)中都是以二進(jìn)制形式存在的。我們可以對(duì)整數(shù)的二進(jìn)制位進(jìn)行相關(guān)的操作。這就是按位運(yùn)算符,它主要包括:位的“與”、位的“或”、位的“非”、位的“異或”。
            1)位的“與”,用符號(hào)“&”表示,它屬于二元運(yùn)算符。 與位運(yùn)算值表:

    A

    B

    A&B

    1

    1

    1

    1

    0

    0

    0

    1

    0

    0

    0

    0


             2)位的“或”用符號(hào)“|”表示,它屬于二元運(yùn)算符。。   或位運(yùn)算值表:

    A

    B

    A|B

    1

    1

    1

    0

    1

    1

    1

    0

    1

    0

    0

    0


              3)位的“非”,用符號(hào)“~”表示,它是一元運(yùn)算符,只對(duì)單個(gè)自變量起作用。它的作用是使二進(jìn)制按位“取反”。 非位運(yùn)算值表:

    A

    ~A

    1

    0

    0

    1


               4)位的“異或”,用符號(hào)“^”表示,它屬于二元運(yùn)算符。異或位運(yùn)算值表:

    A

    B

    A^B

    1

    1

    0

    0

    1

    1

    1

    0

    1

    0

    0

    0



    /*測(cè)試位的四種運(yùn)算*/

    public class BitOperation
    {
     public static void main(String[] args)
     {
      int a = 15;
      int b = 2;
      int x = a & b;
      int y = a | b;
      int z = a ^ b;
      System.out.println(a + "&" + b + "=" + x);
      System.out.println(a + "|" + b + "=" + y);
      System.out.println(a + "^" + b + "=" + z);
     }
    }

    輸出結(jié)果:
                      15 & 2 = 2
                      15 | 2 = 15
                      15 ^ 2 = 13

    五、移位運(yùn)算符
            移位運(yùn)算符的面向?qū)ο笠彩嵌M(jìn)制的“位”。可以單獨(dú)用移位運(yùn)算符來處理int型數(shù)據(jù)。它主要包括:左移位運(yùn)算符(<<)、“有符號(hào)”右移位運(yùn)算符(>>)、“無符號(hào)”右移運(yùn)算符(>>>)
            1)左移位運(yùn)算符
             左移位運(yùn)算符,用符號(hào)“<<”表示。它是將運(yùn)算符左邊的對(duì)象向左移運(yùn)動(dòng)運(yùn)算符右邊指定的位數(shù)(在低位補(bǔ)0)。
            2)“有符號(hào)”右移運(yùn)算符
            “有符號(hào)”右移運(yùn)算符,用符號(hào)“>>”表示。它是將運(yùn)算符左邊的運(yùn)算對(duì)象向右移動(dòng)運(yùn)算符右側(cè)指定的位數(shù)。它使用了“符號(hào)擴(kuò)展”機(jī)制,也就是說,如果值為正,在高位補(bǔ)0,若為負(fù),則在高位補(bǔ)1。
            3)“無符號(hào)”右移運(yùn)算符
            “無符號(hào)”右移運(yùn)算符,用符號(hào)“>>>”表示。它同“有符號(hào)”右移運(yùn)算符的移動(dòng)規(guī)則是一樣的,惟一的區(qū)別就是:“無符號(hào)”右移運(yùn)算符,它采用了“零擴(kuò)展”,也就是說,無論值為正負(fù),都在高位補(bǔ)0。

    /*移位運(yùn)算符測(cè)試*/

    public class BitMotion
    {
       public static void main(String[] args)
       {
         int a = 15;
         int b = 2;
         int x = a << b;
         int y = a >> b;
         int z = a >>> b;
         System.out.println(a + "<<" + b + "=" + x );
         System.out.println(a + ">>" + b + "=" + y);
         System.out.println(a + ">>>" + b + "=" + z);
        }
    }
    輸出結(jié)果:
                     15 << 2 =60
                     15 >> 2 = 3
                     15 >>> 2 =3

    六、賦值運(yùn)算符
            賦值運(yùn)算符是程序中最常用的運(yùn)算符了,只要有變量的聲明,就要有賦值運(yùn)算。如a = 3;這里的a我們都知道是變量名,根據(jù)前面對(duì)變量的定義,我們可以知道這里的a實(shí)際上就是內(nèi)存空間的一個(gè)名字,它對(duì)應(yīng)的是一段內(nèi)存空間,一在要在這個(gè)空間放入3這個(gè)值。這個(gè)放入的過程就實(shí)現(xiàn)了賦值的過程。
                  賦值運(yùn)算一覽表

    運(yùn)算符

    一般表示法

    Java語言表示法

    +=

    a = a + b

    a += b

    -=

    a = a - b

    a -= b

    *=

    a = a * b

    a *=b

    /=

    a=a / b

    a /= b

    %=

    a = a % b

    a %= b

    >>=

    a = a >> b

    a >>= b

    >>>=

    a = a >>> b

    a >>>= b


    七、三元運(yùn)算符
            三元運(yùn)算符比較罕見,因?yàn)樗腥齻€(gè)運(yùn)算對(duì)象,但它也確實(shí)屬于運(yùn)算符的一種,因?yàn)樗罱K也是產(chǎn)生一個(gè)值。它也可以轉(zhuǎn)化為條件判斷語句,只不過這種處理方式更簡潔、明了。
            它的運(yùn)算過程是這樣的:
             如果“布爾表達(dá)式”的結(jié)果是“true”,就返回值0;
             如果“布爾表達(dá)式”的結(jié)果是“false”,就返回值1;
             它的返回值做為最終結(jié)果返回。

    八、逗號(hào)運(yùn)算符
            在Java中,逗號(hào)運(yùn)算符的惟一使用場所就是在for循環(huán)語句中。

    九、字符串運(yùn)算符
            “+”號(hào)這個(gè)運(yùn)算符,在Java中有一項(xiàng)特殊的用法,它不僅起到連接不同的字符串,還有一種隱式的轉(zhuǎn)型功能。

    十、轉(zhuǎn)型運(yùn)算符
            轉(zhuǎn)型運(yùn)算符可以說是一種特殊的運(yùn)算符,它是將一種類型的數(shù)據(jù)或?qū)ο螅瑥?qiáng)制轉(zhuǎn)變?yōu)榱硪环N類型。

    /*強(qiáng)制轉(zhuǎn)型測(cè)試*/

    public class TypeTran
    {
       public static void main(String[] args)
       {
         int x ;
         double y;
         x = (int)22.5 + (int)34.7;  //強(qiáng)制轉(zhuǎn)型可能引起精度丟失
         y = (double)x;
         System.out.println("x = " + x);
         System.out.println("y = " + y);
       }
    }
    輸出結(jié)果:
                      x = 56
                      y = 56.0
    分析:
              可以發(fā)現(xiàn),由于強(qiáng)制轉(zhuǎn)型,使數(shù)據(jù)精度丟失。系統(tǒng)會(huì)忽略強(qiáng)制轉(zhuǎn)型的檢查。所以對(duì)于強(qiáng)制轉(zhuǎn)型,必須清楚轉(zhuǎn)型是否可行。

             最后總結(jié)一下運(yùn)算符的優(yōu)先級(jí)

    運(yùn)算符

    優(yōu)先級(jí)

    括號(hào)()

    1最高

    ++、--

    2

    ~、!

    3

    *、/、%

    4

    +、-(減)

    5

    <<、>>、>>>

    6

    >、<、>=、<=

    7

    ==、!=

    8

    &

    9

    ^

    10

    |

    11

    &&

    12

    ||

    13

    ? :

    14


     

    posted on 2007-05-14 14:24 心隨Wǒ動(dòng) 閱讀(16911) 評(píng)論(8)  編輯  收藏

    FeedBack:
    # re: Java運(yùn)算符
    2007-05-14 16:22 | 我心依舊
    前三種運(yùn)算符都很重要,很常用.  回復(fù)  更多評(píng)論
      
    # re: Java運(yùn)算符
    2007-05-14 19:32 | 劉甘泉
    邏輯運(yùn)算符替換if else還是很常用的  回復(fù)  更多評(píng)論
      
    # re: Java運(yùn)算符[未登錄]
    2007-07-18 13:13 | j
    按位異或和邏輯異或有什么區(qū)別阿?  回復(fù)  更多評(píng)論
      
    # re: Java運(yùn)算符
    2009-07-25 11:35 | Wardon
    @j
    很明顯啊,按位異或?qū)ο笫嵌M(jìn)制位,邏輯或?qū)ο笫遣紶栔?nbsp; 回復(fù)  更多評(píng)論
      
    # re: Java運(yùn)算符
    2013-01-30 16:11 | commonsLok
    頭暈了。。。  回復(fù)  更多評(píng)論
      
    # re: Java運(yùn)算符
    2013-03-20 21:40 | 4455
    # re: Java運(yùn)算符[未登錄]
    2013-11-02 15:19 | Daniel
    @Wardon
    不是。 按位異或用于布爾值返回的也是布爾值,差別主要在于,邏輯異或會(huì)短路,而按位異或不會(huì)。
      回復(fù)  更多評(píng)論
      
    # re: Java運(yùn)算符
    2014-03-24 16:45 | 1336620740@qq.com
    ~的作用和反碼一樣的嗎?還是相當(dāng)于取5的補(bǔ)碼作用是一樣的?lz

    比如~5
      回復(fù)  更多評(píng)論
      

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    <2007年5月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    QQ群:9028409
    QQ:29850994
    點(diǎn)擊這里給我發(fā)消息

    留言簿(2)

    隨筆檔案

    積分與排名

    • 積分 - 31326
    • 排名 - 1348

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 中文字幕无码不卡免费视频| 亚洲ts人妖网站| 在线精品免费视频| 黄页免费在线观看| 一级中文字幕免费乱码专区| 午夜在线a亚洲v天堂网2019| 337p欧洲亚洲大胆艺术| 久久久久亚洲AV综合波多野结衣| 女人18毛片特级一级免费视频| 91短视频在线免费观看| 国内精品99亚洲免费高清| 一级毛片a免费播放王色| 亚洲av永久中文无码精品| 亚洲一区中文字幕在线电影网| 久久久无码精品亚洲日韩蜜桃| 亚洲人成影院在线观看| 国产精品高清全国免费观看| 午夜时刻免费入口| 在线视频观看免费视频18| 91精品免费在线观看| 2019中文字幕在线电影免费 | 中文成人久久久久影院免费观看| 国产精品亚洲专区在线播放| 亚洲国产区男人本色| 亚洲人成电影在线观看青青| 亚洲精品国产成人中文| 久久亚洲日韩精品一区二区三区| 久久亚洲免费视频| 久久亚洲AV成人出白浆无码国产| 亚洲AV日韩AV永久无码下载| 久久久影院亚洲精品| 在线观看亚洲一区二区| 亚洲自偷自偷精品| 亚洲视频欧洲视频| 亚洲国产成人综合| 亚洲videos| 女bbbbxxxx另类亚洲| 男女交性无遮挡免费视频| 成人免费夜片在线观看| 中文字幕在线视频免费| 日本在线免费观看|