零基礎學Java之數據類型和運算符,第一講:進位及其轉換

2021-01-08 尚學堂java學院

主要內容

進位及其轉換標識符、關鍵字常量變量八大基本數據類型final常量和Scanner輸入算術運算符賦值運算符關係運算符邏輯運算符位運算符條件運算符運算符的優先級別基本數據類型的類型轉換學習目標

一、進位及其轉換

1.1 進位類型

十進位:人類使用

二進位:計算機使用

八進位和十六進位:為了更好的表示二進位(縮短二進位長度)

各進位數之間的關係

1.2 計算機為什麼使用二進位

物理上容易實現,可靠性強;運算簡單便於進行邏輯運算。二進位,是計算技術中廣泛採用的一種數制,由德國數理哲學大師萊布尼茨於1679年發明。二進位數據是用0和1兩個數碼來表示的數。它的基數為2,進位規則是「逢二進一」。

數字計算機只能識別和處理由『0』.『1』符號串組成的代碼。其運算模式正是二進位。

二進位對應兩種狀態,廣泛應用於電子科學。比如:可以對應電子器件的開關狀態、對應信號電壓狀態(+5V等價於邏輯"1",0V等價於邏輯"0")、對應卡帶是否打孔狀態、電磁存儲(磁體狀態:南為0,北為1)等等。

二進位廣泛應用於我們生活的方方面面。比如,廣泛使用的摩爾斯電碼,它由兩種基本信號組成:短促的點信號「·」,讀「滴」;保持一定時間的長信號「—」,讀「嗒」。然後,組成了26個字母,從而拼寫出相應的單詞。

當然,我們沒有必要記住這些。如果一定想學,記住SOS就好了^_^

其實有人說在中國三千年前的著作《周易》中存在二進位數的使用和二——十進位數的轉換編碼。而且,更簡單、更先進、更科學。你認為是這麼一回事嗎?

在線進位轉化的工具: https://tool.lu/hexconvert/

1.3 進位轉換

二進位轉十進位二進位轉十進位採用「權相加法」。

十進位轉二進位十進位整數轉換為二進位整數採用"除2取餘,逆序排列"法。

1.4 計算機數據存儲單位

位 bit 最小值 0

最大值 1

表示的數的範圍 0-1(21-1)

字節 byte:8bit 最小值 00000000

最大值 11111111

表示的數的範圍 0-255(28-1)

字符 :16bit 最小值 0000 0000 0000 0000

最大值 1111 1111 1111 1111

表示的數的範圍0-65535(216-1)

KB、MB、GB、TB 1KB = 1024Byte ≈103Byte

1MB = 1024KB ≈ 106Byte

1GB = 1024MB ≈ 109Byte

1TB = 1024GB ≈ 1012Byte

1.5 計數範圍

符號位 二進位數如何表示正數和負數呢?

使用最高位作為符號位,0代表整數,1代表負數;其餘數位用作數值位,代表數值。

字節 byte表示的數的範圍 無符號數:0-255(28-1) 256個數

有符號數:-128(-27)--127(27-1) 還是256個數

字符表示的數的範圍 無符號數 0-65535(216-1) 65536個數

有符號數 -32768(-215)32767(215-1) 還是65536個數

1.6 字符集和字符編碼

計算機中儲存的信息都是用二進位數表示的;而我們在屏幕上看到的英文、漢字等字符是二進位數轉換之後的結果。通俗的說,按照何種規則將字符存儲在計算機中,如'a'用什麼表示,稱為"編碼";反之,將存儲在計算機中的二進位數解析顯示出來,稱為"解碼",如同密碼學中的加密和解密。在解碼過程中,如果使用了錯誤的解碼規則,則導致'a'解析成'b'或者亂碼。

字符集(Charset):是一個系統支持的所有抽象字符的集合。字符是各種文字和符號的總稱,包括各國家文字、標點符號、圖形符號、數字等。

字符編碼(Character Encoding):是一套法則,使用該法則能夠對自然語言的字符的一個集合(如字母表或音節表),與其他東西的一個集合(如號碼或電脈衝)進行配對。即在符號集合與數字系統之間建立對應關係,它是信息處理的一項基本技術。通常人們用符號集合(一般情況下就是文字)來表達信息。而以計算機為基礎的信息處理系統則是利用元件(硬體)不同狀態的組合來存儲和處理信息的。元件不同狀態的組合能代表數字系統的數字,因此字符編碼就是將符號轉換為計算機可以接受的數字系統的數,稱為數字代碼。

常見的字符集和字符編碼

ASCII (阿寺克) ASCII ((American Standard Code for Information Interchange): 美國信息交換標準代碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言。它是最通用的信息交換標準,到目前為止共定義了128個字符。每個字符用1個字節表示。

◆ 0~31及127(共33個)是控制字符或通信專用字符(其餘為可顯示字符),如控制符:LF(換行)、CR(回車)、DEL(刪除)、BS(退格)等

◆ 32 空格

◆ 48~57為0到9十個阿拉伯數字。

◆ 65~90為26個大寫英文字母

◆ 97~122號為26個小寫英文字母

ISO8859-1 ◆ Latin-1,是西歐常用字符,包括德法兩國的字母

◆ 1個字節,兼容ASCII碼

GB2312 ◆ 大陸使用最早、最廣的簡體中文字符集;兼容ASCII編碼

◆ 每個漢字用2個字節表示

GBK ◆ GB2312的擴展,可以表示繁體中文

◆ 一個漢字用 2個字節表示

GB18030 ◆ GBK的擴展,最新的規範,不僅可以表示漢字、還可以表示維吾爾文、藏文等多個少數民族的字符

◆ 一個字符用 2個字節表示

BIG5 ◆ 臺灣的大五碼,表示繁體漢字 2個字節

Unicode ----UTF-8 UTF-16 ◆ 統一碼、萬國碼、單一碼 通常認為一個字符佔用2個字節

◆ 為了解決傳統的字符編碼方案的局限而產生的,它為每種語言中的每個字符設定了統一併且唯一的二進位編碼,以滿足跨語言、跨平臺進行文本轉換、處理的要求國際通用字符集。

◆ 目前的Unicode字符分為17組編排,0x0000 至 0x10FFFF,每組稱為平面(Plane),而每平面擁有65536個碼位,共1114112個。然而目前只用了少數平面。第0平面(BMP)最為重要。

◆ Unicode 編碼共有三種具體實現,分別為utf-8,utf-16,utf-32,其中utf-8佔用一到四個字節,utf-16佔用二或四個字節,utf-32佔用四個字節

ANSI: ◆ 並不是某一種特定的字符編碼,而是在不同的系統中,ANSI表示不同的編碼。

◆ 在簡體中文Windows作業系統中,ANSI 代表 GBK 編碼;在繁體中文Windows作業系統中,ANSI代表Big5;在日文Windows作業系統中,ANSI 代表 Shift_JIS 編碼。

將持續更新內容,還請持續關注!更多內容請點「主頁」查看

相關焦點

  • java中的字節進位計算和(&)位運算符
    2、字節和二進位有什麼關係?1個字節就是1bit,1bit就是8位,那麼二進位就是8位,類似於(0000 0000),在計算機裡只認0和1類型字節double8byte1short2int4long8float41個字節是8位、2個字節是16位、4個字節是32位。。。。以此類推!
  • Java運算符之位運算符
    接下來通過一張表來展示Java中的位運算符及其用法,如表1所示。 表1 位運算符 從表1可以看出,Java中的位運算符本質都是針對二進位數0和1進行運算的,所以,在使用位運算符時,都會先將操作數轉換成二進位數的形式進行位運算,然後將得到的結果再轉換成想要的進位數
  • Python數據類型之數字(Numbers)和運算符
    ># 2、浮點數 float# 3、複數 complex# 整型:通常被稱為整數,可以是正整數或負整數,不攜帶小數點;Python3中整型是沒有限制大小的,可以當做長整型(long)類型使用。# 浮點數:浮點數由整數部分與小數部分組成(a = 1.11111),浮點數也可以使用科學計數法表示(2.5e2 = 2.5 x 102 = 250)# 複數:複數由實數部分和虛數部分構成,可以用a + bj,或者complex(a,b)表示, 複數的實部a和虛部b都是浮點型。
  • 詳解Java表達式與運算符
    結合上面的案例,本節課程分為三個小節,第一小節探討不能修改的變量—常量;第二小節探討表達式的組成結構及運用;第三小節探討Java的基本運算符,包括賦值運算符、算術運算符、關係運算符和邏輯運算符。在java語言中,定義常量的語法如下:final 數據類型 常量名稱 = 值;其中,final是Java關鍵字,數據類型可以是Java語言支持的任何數據類型。
  • 跟我學java編程—認識java語言的字符類型
    前面兩個小節討論了用於存儲數值的數據類型。另外還經常會遇到需要存儲並操縱字符型數據的情況。例如:計算數值表達式時,需要存儲運算符,這時需要一種可以存儲單個字符數據的數據類型。Java語言提供了一種char數據類型,可以滿足存儲單個字符的需要。
  • 跟我學java編程—認識java的整數類型
    Java語言中,基本的整型數據類型有byte、short、int、long四種類型,用於需要不同存儲空間的數據使用。整型有正整數和負整數之分,在Java語言中,規定整型的最高位為符號位,最高位為「0」表示正數,最高位為「1」表示負數,其它位表示數值。因此整型類型的數據能夠表示的最小值為:-2n-1 —2n-1-1(n為該類型所佔存儲空間的二進位位數)。
  • 跟我學java編程—Java邏輯運算符
    邏輯運算符用於連接兩個條件表達式或布爾類型的變量,用於執行多個判斷。在數學中,表示一個數值的範圍時,經常用不等式來表述。10和20,變量c賦值為15。第四條語句邏輯與運算符「&&」連接了2個條件表達式,分別是c > a和c < b,如果這兩個表達式計算結果都為真,則bJudge為真,否則bJudge為false。此時bJudge的值為true。該運算符還有一個特點,當左側的條件表達式或布爾變量為假時,則直接返回結果false,不再執行運算符右側的表達式或布爾變量。
  • 尚學堂知識整理:Java double數據類型
    double數據類型使用64位來存儲浮點數。double值也稱為雙精度浮點數。它可以表示一個最小為4.9 x 10^-324,最大為1.7 x 10^308的數字。它可以是正的或負的。所有實數被稱為double字面量。
  • MySQL涉及二進位的運算符:位運算符
    截止目前我們已經學習了MySQL的三種運算符:算術運算符、比較運算符、邏輯運算符。三者有一個共同點都是針對字符型、表達式和十進位的數字。那有沒有一種專門為二進位數字提供的運算符呢?這就是本問題的主題:位運算符。
  • Java基礎學習:java中的基本數據類型
    自動轉換:範圍小的數據類型可以自動轉換成範圍大的數據類型。 強制轉換:把一種數據類型轉換為另外一種數據類型。 類型提升:表達式運算中有不同的數據類型,類型會自動向範圍大的提升。
  • 零基礎學編程之進位轉換基礎
    01十進位十進位(逢10進1)是我們最常用的一種數位進位方式。十進位和二進位可以相互轉換,如下所示:計算-1*1結果一樣,(-1)*(-1)= 1即1111 * 1111 = 0001,這種數據運算規則就是補碼運算。總結:計算機中正數和負數的關係是取反加一。
  • Java二進位和位運算,這一萬字準能餵飽你
    有或者往深了繼續思考:如何轉為八進位、十六進位、三十二進位......進位轉換並非本文所想講述的內容,請有興趣者自行度娘。二進位與編碼這個雖然和本文內容關聯繫並不是很大,但順帶撈一撈,畢竟編碼問題在開發中還是比較常見的。計算機能識別的只有1和0,也就是二進位,1和0可以表達出全世界的所有文字和語言符號。那如何表達文字和符號呢?這就涉及到字符編碼了。
  • 學校裡學不到的C語言教程之10:一定要會的移位和16進位轉換原理
    我剛入行的時候也是如此,一來是移位的運算結果需要轉換成二進位後再能校驗運算結果是否正確,二是不同的數據類型移位的操作結果並不是唯一的。不過我們這次要說的移位操作比較簡單,也比較重要。這種算法在編碼/解碼過程中是經常會碰到的,那就是8位單字節數據的移位結果。它的實際用途可以用常見的字節內容顯示為16進位字符串的算法來做個示例。
  • 二進位小總結
    對於java來說,由於其具有跨平臺的特性,所以基本數據類型所佔用的內存空間大小(字節數)是固定的。我們來看一下java中的幾個基本數據類型:註:jvm規範並沒有指明boolean類型佔用幾個字節的空間,所以根據jvm產品的不同,實現的方式也可能不同。最廣泛的說法是,jvm內部使用int代替boolean類型,也就是佔用4個字節。
  • JAVA-二進位基礎
    一、二進位的概念計算機進位有:二進位、八進位、十六進位進位的基本特點是:每一位置上的數字必須在0-(進位-1)的範圍內,也就是說二進位只能有0、1;八進位為:0-7;十六進位比較特殊為:0-9,A(10) B(11) C(12) D(13) E(14) F(15)進位轉換:1、非十進位轉換十進位:每位數字乘以進位數的權重次方
  • 三分鐘熟悉進位轉換與位運算
    位運算則是在程序中對二進位數的一元和二元運算操作。在 JDK 以及框架源碼中都存在進位轉換和位運算的身影,作為開發人員應該熟悉基本的進位轉換和位運算(最起碼得能看懂吧)。進位轉換例如,十進數的 13,二進位的 1101,他們表示相同的數值,只是不同的表現形式而已,那麼不同進位之間如何相互轉換呢?
  • 運算符和表達式(1)
    上兩課說了常量和變量,先來補充一個用以重新定義數據類型的的語句吧。這個語句就是typedef,這是個很好用的語句,但我自己卻不常用它,通常我定義變量的數據類型時都是使用標準的關鍵字,這樣別人可以很方便的研讀你的程序。
  • MATLAB數據進位轉換
    MATLAB中,數據的運算、讀取和存儲過程有時會涉及到進位的轉換。不了解進位轉換方法的話會非常惱火。1、單個數據轉換比如我們想知道一個十進位數的二進位表示,來看具體的位置1還是0.這時可以用dec2bin函數。
  • 今天學Python第三課常用的數據類型有三種字符串,整數,浮點數
    比如上一關的print(1314)這就是我們常見的數據類型第二種:整數, 英文為integer, 簡稱int。 Python的整數和我們現實數學中定義的一樣:整數是正整數、零和負整數的統稱。說白了,就是沒有小數點的數字。
  • Python基礎學習之常用六大數據類型
    剛開始學習一門程式語言,除了了解運行環境與語言類型之外,最基本還是從該語言的基本數據類型開始學起。Python六大常用數據類型: int 整數 float 浮點數 str 字符串 list 列表 tuple 元組 dict 字典講解這些先說一下python中的變量與變量名。