<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      【Java 溫故而知新系列】基礎(chǔ)知識(shí)-02 數(shù)據(jù)基本類型

      1、Java基本數(shù)據(jù)類型

      Java語言是強(qiáng)類型語言,對(duì)于每一種數(shù)據(jù)都定義了明確的具體的數(shù)據(jù)類型,在內(nèi)存中分配了不同大小的內(nèi)存空間。

      基本數(shù)據(jù)類型

      • 數(shù)值型:整數(shù)類型(byte,short,int,long) ;浮點(diǎn)類型(float,double)
      • 字符型:char
      • 布爾型:boolean

       

      類型 類型名稱 關(guān)鍵字 占用內(nèi)存 取值范圍 默認(rèn)值
      整型 字節(jié)型 byte 1 Byte(字節(jié))

        -128(2^7)

      ~ 127(2^7-1)

      0
      短整型 short 2 Byte(字節(jié))

        -32768(2^15)

      ~ 32767(2^15-1)

      0
      整型 int   4 Byte(字節(jié))

      -2147483648(2^31)

      ~ 2147483647(2^31-1)

      0
      長(zhǎng)整型 long 8 Byte(字節(jié)) -2^63 ~2^63-1 0L
      浮點(diǎn)型 單精度浮點(diǎn)型 float 4 Byte(字節(jié))

      -3.4028235 × 10^38

      ~ 3.4028235×10^38

      0.0F
      雙精度浮點(diǎn)型 double 8 Byte(字節(jié))

      ?1.7976931348623157×10^308

      ~ 1.7976931348623157×10^308

      0.0D
      字符型 字符型 char 2 Byte(字節(jié)) 表示一個(gè)字符,如'a'、'A' '\u0000'
      布爾型 布爾型 boolean 1 Byte(字節(jié)) true、false false

      很長(zhǎng)一段時(shí)間里對(duì)整型數(shù)據(jù)的取值范圍我自己一直幾個(gè)疑問 ,以byte 舉例:byte的取值范圍是 -128 (2^7)~ 127(2^7-1):

      1、那么byte的內(nèi)存是 1 字節(jié)剛好是8位,它的取值范圍為什么是2^7而不是2^8呢 ???

      2、最小值是-2^7,為什么最大值是2^7-1而不是 2^7呢 ???

      有沒有跟我一樣的小伙伴 ? O(∩_∩)O哈哈~ 咋們接著往下看,看我細(xì)細(xì)道來!??! 

       

      疑問1:

      因?yàn)?byte 是有符號(hào)整型,需要表示正數(shù)、負(fù)數(shù)以及零,所以需要用一位來表示符號(hào),最高位被用作符號(hào)位,所以最終表示數(shù)字范圍只能是2^7 而不是2^8。

      • 如果最高位(最左邊的一位)是0,則該數(shù)為正數(shù)或零。
      • 如果最高位是1,則該數(shù)為負(fù)數(shù)。

      個(gè)人覺得第一個(gè)疑問還是比較好理解的,有符號(hào)位嘛,占一位所以少了一位。 

      疑問2:

      最大值:最高位被用作符號(hào)位,因此當(dāng)這7個(gè)位全部為1且符號(hào)位為0時(shí)得到的就是最大正值(二進(jìn)制: 01111111),而二進(jìn)制 01111111 轉(zhuǎn)換為十進(jìn)制的值就是127,所以byte最大值剛好就是 2^7-1;

      最小值:對(duì)于最小的負(fù)數(shù) -128,這是因?yàn)樵诙M(jìn)制補(bǔ)碼中,所有8位都是1(即 11111111)表示的是 -1。而當(dāng)只有最高位為1,其余位都為0(即 10000000)時(shí),根據(jù)二進(jìn)制補(bǔ)碼規(guī)則,這個(gè)值代表的是 -2^7 = -128。

       

      到此我的2個(gè)疑問就都解開了, 不知道有沒有解開小伙伴你們的疑問呢?反思一下有這個(gè)疑問的根本原因是沒搞明白二進(jìn)制的補(bǔ)碼規(guī)則歡迎大家進(jìn)行探討哈。

      下面是網(wǎng)上搜羅的補(bǔ)碼規(guī)則以及設(shè)計(jì)出補(bǔ)碼的原因,僅供我自己和大家參考:

      二進(jìn)制補(bǔ)碼規(guī)則:

      1. 正數(shù)的補(bǔ)碼
        對(duì)于正數(shù),其補(bǔ)碼就是它自身的二進(jìn)制表示。例如,十進(jìn)制數(shù) 5 的8位二進(jìn)制表示為 00000101,這也是它的補(bǔ)碼表示。

      2. 負(fù)數(shù)的補(bǔ)碼
        要獲得一個(gè)負(fù)數(shù)的補(bǔ)碼表示,可以按照以下步驟操作:

      • 找到對(duì)應(yīng)的正數(shù):先確定該負(fù)數(shù)絕對(duì)值的二進(jìn)制表示。
      • 取反:將上述二進(jìn)制數(shù)中的每一位取反(即將所有的 0 變成 1,所有的 1 變成 0),這一步也稱為一的補(bǔ)碼(One's Complement)。
      • 加1:在取反后的結(jié)果上加 1,得到的就是該負(fù)數(shù)的二進(jìn)制補(bǔ)碼表示。

      3. 補(bǔ)碼的優(yōu)點(diǎn)

      • 簡(jiǎn)化了加法器的設(shè)計(jì):無論是正數(shù)還是負(fù)數(shù),都可以用同一個(gè)硬件電路來進(jìn)行加法運(yùn)算。
      • 消除了正零和負(fù)零的區(qū)別:在補(bǔ)碼系統(tǒng)中,只有唯一的一個(gè)零(所有位均為 0),而不存在兩個(gè)不同的零。
      • 自動(dòng)處理溢出:當(dāng)發(fā)生溢出時(shí),只要忽略最左邊的進(jìn)位位,結(jié)果仍然是正確的。

       2、運(yùn)算

      float 與 double

      Java 不能隱式執(zhí)行向下轉(zhuǎn)型,因?yàn)檫@會(huì)使得精度降低。

      1.1 字面量屬于 double 類型,不能直接將 1.1 直接賦值給 float 變量,因?yàn)檫@是向下轉(zhuǎn)型。

      // float f = 1.1;

       在代碼中輸入 float f = 1.1; 會(huì)得到如下清晰的提示

       1.1f 字面量才是 float 類型。 

      1 float f = 1.1f;

       

       隱式類型轉(zhuǎn)換

      因?yàn)樽置媪?1 是 int 類型,它比 short 類型精度要高,因此不能隱式地將 int 類型向下轉(zhuǎn)型為 short 類型。對(duì)于 short s = 1; s = s + 1;由于 1 是 int 類型,因此 s+1 運(yùn)算結(jié)果也是 int型,需要強(qiáng)制轉(zhuǎn)換類型才能賦值給 short 型

      short s = 1;
      // s = s + 1;

       在代碼中輸入s = s + 1; 會(huì)得到如下清晰的提示

       

      但是使用 += 或者 ++ 運(yùn)算符會(huì)執(zhí)行隱式類型轉(zhuǎn)換。

      1 s += 1;
      2 s++;

      上面的語句相當(dāng)于將 s + 1 的計(jì)算結(jié)果進(jìn)行了向下轉(zhuǎn)型:

      1 s = (short) (s + 1);

       

      switch

      在 Java 5 以前,switch(expr)中,expr 只能是 byte、short、char、int。從 Java5 開始,Java 中引入了枚舉類型,expr 也可以是 enum 類型,從 Java 7 開始,expr 還可以是字符串(String),但是長(zhǎng)整型(long)在目前所有的版 本中都是不可以的
      1 String temp = "a";
      2 switch (temp) {
      3     case "a":
      4         System.out.println("aaa");
      5         break;
      6     case "b":
      7         System.out.println("bbb");
      8         break;
      9 }

       switch 不支持 long、float、double,是因?yàn)?switch 的設(shè)計(jì)初衷是對(duì)那些只有少數(shù)幾個(gè)值的類型進(jìn)行等值判斷,如果值過于復(fù)雜,那么還是用 if 比較合適。

       當(dāng)switch(expr) 中的expr 是long 類型時(shí),會(huì)得到如下清晰的提示

        

      posted @ 2024-12-27 10:16  朱小路  閱讀(163)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 广西| 亚洲一区二区三区18禁| 99久久精品国产一区二区蜜芽| 成人午夜福利视频后入| 亚洲国产成人综合精品| 91老熟女老人国产老太| 亚洲午夜理论片在线观看| 新津县| 日日噜噜大屁股熟妇| 日本一区二区三区后入式| 国产一区二区三区AV在线无码观看| 日本激情久久精品人妻热| 四虎在线播放亚洲成人| 南雄市| 亚洲国产一区二区三区亚瑟| 国产精品偷乱一区二区三区| 亚洲AV无码久久精品成人| 亚洲成人av在线系列| 久99久热这里只有精品| 亚洲 日本 欧洲 欧美 视频| 粉嫩小泬无遮挡久久久久久| 欧美色欧美亚洲高清在线视频| 精品少妇人妻av无码专区| 无码精品国产VA在线观看DVD| 广汉市| 美女又黄又免费的视频| 精品成人免费自拍视频| 国产乱啊有帅gv小太正| 国产稚嫩高中生呻吟激情在线视频| 四虎永久免费高清视频| 中文字幕亚洲一区二区va在线| 一区二区免费高清观看国产丝瓜 | 亚洲夂夂婷婷色拍ww47 | 五月花成人网| 国产精成人品日日拍夜夜| 日本无人区一区二区三区| 国产精自产拍久久久久久蜜| 最新精品国偷自产在线美女足| 国产精品中文av专线| 日日躁夜夜躁狠狠久久av| 精品久久精品久久精品九九|