最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java為什么占用四個(gè)字節(jié)你知道嗎

 更新時(shí)間:2021年08月31日 18:09:43   作者:你這家伙  
這篇文章主要介紹了Java為什么占四個(gè)字節(jié),文中介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

簡(jiǎn)單了解計(jì)算機(jī)為什么要采用二進(jìn)制表示信息:

因?yàn)橛?jì)算機(jī)作為一種電子計(jì)算機(jī)工具,是由大量的電子器件組成的,在這些電子器件中,電路的通斷,電位的高低,用兩個(gè)數(shù)字符號(hào)“1”和“0”分別表示容易實(shí)現(xiàn),同時(shí)二進(jìn)制的運(yùn)算法則也很簡(jiǎn)單,因此計(jì)算機(jī)內(nèi)部通常采用二進(jìn)制代碼來(lái)作為內(nèi)部存儲(chǔ),傳輸和處理數(shù)據(jù),二進(jìn)制數(shù)據(jù)是用0和1兩個(gè)數(shù)碼來(lái)表示的數(shù),它的基數(shù)為2(逢二進(jìn)一,借一當(dāng)二)
其實(shí)最開始使用的并不是二進(jìn)制,而是十進(jìn)制,因?yàn)槿藗冇惺畟€(gè)手指頭,手可以表示十個(gè)數(shù)字,所以十進(jìn)制是比較合理的,0的概念是之后很久才誕生的,所以是0-10而不是0-9。

電子計(jì)算機(jī)出現(xiàn)以后,使用電子管來(lái)表示十種狀態(tài)過(guò)于復(fù)雜,所以所有的電子計(jì)算機(jī)中只有兩種基本的狀態(tài),開和關(guān)。也就是說(shuō),電子管的兩種狀態(tài)決定了以電子管為基礎(chǔ)的電子計(jì)算機(jī)采用二進(jìn)制來(lái)表示數(shù)字和數(shù)據(jù)。常用的進(jìn)制還有8進(jìn)制和16進(jìn)制,在電腦科學(xué)中,經(jīng)常會(huì)用到16進(jìn)制,而十進(jìn)制的使用非常少,這是因?yàn)?6進(jìn)制和二進(jìn)制有天然的聯(lián)系:4個(gè)二進(jìn)制位可以表示從0到15的數(shù)字,這剛好是1個(gè)16進(jìn)制位可以表示的數(shù)據(jù),也就是說(shuō),將二進(jìn)制轉(zhuǎn)換成16進(jìn)制只要每4位進(jìn)行轉(zhuǎn)換就可以了。

為什么使用二進(jìn)制我們了解了,現(xiàn)在就直奔我們主題

二進(jìn)制位分析

首先計(jì)算機(jī)只認(rèn)識(shí)二進(jìn)制。而一個(gè)字節(jié)是8位二進(jìn)制,只用0和1來(lái)表示狀態(tài),那么我們看看一位能表示多少個(gè)狀態(tài)

1 位:0 和 1 也就是2的一次方,最多表示2個(gè)狀態(tài)(要么是0,要么是1)

2 位:00 和 11 也就是2的2次方,最多表示4個(gè)狀態(tài),也就是(00,01,10,11)

3 位: 000 和 111 也就是2的3次方,最多表示8個(gè)狀態(tài),也就是(000,001,010,011,100,101,110,111)

……以此類推

8位: 就可以表示2的8次方個(gè)狀態(tài) = 256個(gè)狀態(tài)

9位:表示2的9次方 = 512個(gè)狀態(tài)

10位:表示2的10次方 = 1024個(gè)狀態(tài)

32位:表示2的32次方 = 4294967296個(gè)狀態(tài)

查看底層源碼我們可以看到

在這里插入圖片描述

而int如果轉(zhuǎn)成十進(jìn)制的話,那么他們的范圍[-231~231 -1],也就是“-2147483648 ~ 2147483647”

計(jì)算機(jī)為了區(qū)分正負(fù)數(shù),所以把256個(gè)狀態(tài)一半給了負(fù)數(shù),也就是“-128~127”這256個(gè)數(shù)(因?yàn)橐?fù),所以從8位中拿走以為來(lái)表示)

byte 占 1個(gè)字節(jié) = 8個(gè)比特位 就可以表示2的8次方個(gè)數(shù)

short占 2個(gè)字節(jié) = 16個(gè)比特位……

int 占 4 個(gè)字節(jié) = 32個(gè)比特位

那么為什么int就占了4個(gè)字節(jié)呢?

在JAVA中一共有八種基本數(shù)據(jù)類型,它們分別是 byte、short、int、long、float、double、char、boolean

其中byte、short、int、long都是表示整數(shù)的,只不過(guò)他們的取值范圍不一樣

  • byte 占用1個(gè)字節(jié) 它的取值范圍為 -128 ~ 127

內(nèi)存開銷:

byte a = 1; // 00000001

  • short 占用2個(gè)字節(jié),它的取值范圍為 -32768 ~ 32767

short a = 1; // 00000000 00000001

  • int占用4個(gè)字節(jié),它的取值范圍為 -2147483648 ~ 2147483647

int a = 1; // 00000000 00000000 00000000 00000001

  • long占用8個(gè)字節(jié),它的取值范圍為 -9223372036854774808 ~ 9223372036854774807

這里就不寫了~

問(wèn):所有的int都是占四個(gè)字節(jié)嗎?

回答:不一定是4個(gè)字節(jié),他和操作系統(tǒng)有關(guān)系,int占多少個(gè)字節(jié)是由編譯器決定的 以前16位系統(tǒng)中int是2個(gè)字節(jié)的,而現(xiàn)在32位的系統(tǒng),int是4個(gè)字節(jié)的,其實(shí)現(xiàn)在基本上都是64位系統(tǒng), 所謂的16位32位64位系統(tǒng)是由cpu決定的,由機(jī)器指令的尋址、寄存器位數(shù)決定的 os受cpu的限制,但在32位的cpu下16位的os也可以跑 很多os是向前兼容的,就是使以前的程序也能運(yùn)行,如果編譯器本身是16位時(shí)代做的,那么os會(huì)提供一個(gè)模擬16位的子環(huán)境供這個(gè)編譯器使用 非要轉(zhuǎn)牛角尖的話,int只是語(yǔ)言定義里面的一個(gè)關(guān)鍵字,只對(duì)compiler可見(jiàn),complier說(shuō)它是幾位就是幾位,和os/cpu都沒(méi)關(guān)系

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • SpringBoot使用@NotEmpty、@NotBlank、@NotNull注解進(jìn)行參數(shù)校驗(yàn)

    SpringBoot使用@NotEmpty、@NotBlank、@NotNull注解進(jìn)行參數(shù)校驗(yàn)

    我們經(jīng)常需要對(duì)請(qǐng)求參數(shù)進(jìn)行校驗(yàn),本文主要介紹了SpringBoot使用@NotEmpty、@NotBlank、@NotNull注解進(jìn)行參數(shù)校驗(yàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-08-08
  • SpringCloud中的Seata基本介紹與安裝教程

    SpringCloud中的Seata基本介紹與安裝教程

    Seata 是一款開源的分布式事務(wù)解決方案,致力于提供高性能和簡(jiǎn)單易用的分布式事務(wù)服務(wù),這篇文章主要介紹了SpringCloud之Seata基本介紹與安裝,需要的朋友可以參考下
    2024-01-01
  • java?hutool工具類處理JSON的使用方法

    java?hutool工具類處理JSON的使用方法

    hutool是一個(gè)java基礎(chǔ)工具類,該工具類經(jīng)過(guò)長(zhǎng)期的發(fā)展,API已經(jīng)非常齊全,下面這篇文章主要給大家介紹了關(guān)于java?hutool工具類處理JSON的使用方法,需要的朋友可以參考下
    2024-04-04
  • 如何在springboot中配置和使用mybatis-plus

    如何在springboot中配置和使用mybatis-plus

    這篇文章主要給大家介紹了關(guān)于如何在springboot中配置和使用mybatis-plus的相關(guān)資料,MyBatis?Plus是MyBatis的增強(qiáng)版,旨在提供更多便捷的特性,減少開發(fā)工作,同時(shí)保留了MyBatis的靈活性和強(qiáng)大性能,需要的朋友可以參考下
    2023-11-11
  • java整合SSM框架的圖文教程

    java整合SSM框架的圖文教程

    下面筆者就為大家分享一篇java整合SSM框架的圖文教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨筆者過(guò)來(lái)看看吧
    2017-11-11
  • 如何利用Spring的@Import擴(kuò)展點(diǎn)與spring進(jìn)行無(wú)縫整合

    如何利用Spring的@Import擴(kuò)展點(diǎn)與spring進(jìn)行無(wú)縫整合

    這篇文章主要介紹了如何利用Spring的@Import擴(kuò)展點(diǎn)與spring進(jìn)行無(wú)縫整合的實(shí)例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Java實(shí)現(xiàn)學(xué)生選課管理系統(tǒng)

    Java實(shí)現(xiàn)學(xué)生選課管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)學(xué)生選課管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • 使用Feign調(diào)用時(shí)添加驗(yàn)證信息token到請(qǐng)求頭方式

    使用Feign調(diào)用時(shí)添加驗(yàn)證信息token到請(qǐng)求頭方式

    這篇文章主要介紹了使用Feign調(diào)用時(shí)添加驗(yàn)證信息token到請(qǐng)求頭方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java+Windows+ffmpeg實(shí)現(xiàn)視頻轉(zhuǎn)換功能

    Java+Windows+ffmpeg實(shí)現(xiàn)視頻轉(zhuǎn)換功能

    這篇文章主要為大家詳細(xì)介紹了Java+Windows+ffmpeg實(shí)現(xiàn)視頻轉(zhuǎn)換功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Java NIO無(wú)法綁定指定IP和端口解決方案

    Java NIO無(wú)法綁定指定IP和端口解決方案

    這篇文章主要介紹了Java NIO無(wú)法綁定指定IP和端口解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10

最新評(píng)論

庄河市| 邵东县| 广德县| 尤溪县| 大邑县| 宽甸| 方山县| 天台县| 高唐县| 长武县| 定日县| 汪清县| 固安县| 宁武县| 天水市| 盐山县| 巧家县| 南康市| 白银市| 天长市| 长武县| 昭苏县| 新乡市| 吉木乃县| 义马市| 行唐县| 庆云县| 榆林市| 安吉县| 灵山县| 马公市| 龙岩市| 贵定县| 贡山| 金湖县| 邹平县| 邳州市| 庐江县| 确山县| 平邑县| 长治县|