日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

java中char對應的ASCII碼的轉化操作

瀏覽:133日期:2022-08-27 10:40:35

java中,char類型變量可以強制轉化為int類型變量,int類型變量也可以強制轉化成char類型的變量:

char c=’a’; int i=98; System.out.println((int)c); System.out.println((char)i);

對于數(shù)組類型,其下標為int類型,所以可以直接使用char類型變量,默認強制轉換:

int[] array=new int[100]; for(int i=0;i<array.length;i++){ array[i]=i; } char c=’a’; System.out.println(array[c]);

補充知識:java中int與char之間的互相轉化

引言

在介紹java中int與char之間的互相轉化之前,讓我們先簡單的回顧一些會涉及到的知識。

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

在介紹int與char的轉換之前,我們先來回顧一下java中的基本數(shù)據(jù)類型:

類型 大小 包裝器類型 boolean - Boolean char 16-bit Character byte 8 bits Byte short 16 bits Short int 32 bits Integer long 64 bits Long float 32 bits Float double 64 bits Double

ascii碼

其次,我們要知道,在計算機中,所有的數(shù)據(jù)在存儲和運算時都要使用二進制數(shù)表示,例如,像a、b、c、d這樣的字母以及各種符號,還有作為字符的數(shù)字,都要使用二進制數(shù)字來表示,因此需要一種二進制碼與這些字符的對應關系。

而現(xiàn)在普遍遵守的對應關系就是ASCII編碼,在這里貼幾個字母的ascii碼作為我們的測試對象:

ascii碼(十進制) 字符 97 ‘a(chǎn)’ 98 ‘c’ 99 ‘d’ 100 ‘e’

更多的ascii碼的對應關系可以在這個鏈接里看到:更多ascii碼

int與char的互相轉換

在引言中,我們可以看到,int類型是一個32位的數(shù)據(jù)類型,因為其位有符號數(shù),所以,其取值范圍為:-2^31 至 2^31 - 1。

而char為16位的數(shù)據(jù),為無符號數(shù),其范圍為:0 至 2 ^ 32 -1,即 0 - 65535,用十六進制碼來看,則為:’u0000’ - ‘uffff’。

再從前面引言中對于ascii碼的描述,我們可以看出,無論是什么字符,在計算機中,其實也是以數(shù)字(本質為一個二進制數(shù))的形式存儲的,因此,在java中,無論是一個字符,還是一個字符型變量,實則也是一個數(shù)字,所以,可以直接將一個(不超過char的范圍的)數(shù)字賦值給一個char變量,即可輸出其結果:

char c1 = 97;

System.out.println(c1);

輸出:

a

可以看到,正確輸出了97的ascii碼所對應的字符:‘a(chǎn)’。

同樣的,我們可以將一個字符賦值給一個int變量,因為字符也是一個數(shù)字嘛

int num1 = ’a’;

System.out.println(num1);

輸出:

97

甚至,我們可以將一個數(shù)字與一個字符在一個表達式中進行計算:

char c2 = ’a’ + 1;int num2 = ’a’ + 1;System.out.println('c2: ' + c2);System.out.println('num2: ' + num2);System.out.println('(char) num2: ' + (char) num2);

輸出:

c2: bnum2: 98(char) num2: b

因為字符’b’所對應的ascii碼是98,比’a’所對應的97要大1,所以,將’a’加1之后,得到的便是字符’b’了。同時,將int型的num2直接進行強制轉換,也可以得到所期望的’b’。

可能出現(xiàn)的錯誤

從上面一節(jié)的描述,我們可以看出,char與int之間的轉換還是相當容易的,但是,也有幾點需要注意,否則,會導致程序中的錯誤。

從引言中的基本數(shù)據(jù)類型的回顧中,我們可以看出,int是比char范圍更大的,因此,這些錯誤主要便是會出現(xiàn)在從int轉到char的過程中。

char的大小過界

由于char是一個16位的無符號的數(shù)據(jù)類型,所以其大小范圍是:0 至 2 ^ 32 -1,即 0 - 65535,用十六進制碼來看,則為:’u0000’ - ‘uffff’。

雖然我們可以直接以一個數(shù)字賦給一個char型的變量,但是,若我們賦的值的大小大于了65536,則會報出錯誤來,如下代碼:

char c3 = 65535;System.out.println(c3);char c4 = 65536;System.out.println(c4);

輸出:

Error:(33, 19) java: 不兼容的類型: 從int轉換到char可能會有損失

報錯是報在了上面代碼中的第3行,即char c4 = 65536,這一行,因此,當對一個char類型賦值的時候,要注意,所賦的值不能超過了65535。

將int變量直接賦給char變量

在上面,我們看到了,可以直接將一個數(shù)字賦值給char類型的變量,那是不是我們可以直接將一個int類型的變量賦給一個char類型的變量呢?

答案是否定的,這里,涉及到隱式轉換與顯式轉換的知識。簡單地來講,就是只能從一個范圍較小的數(shù)字轉換到一個范圍較大的數(shù)字,如32位的int類型到64位的long是可以隱式轉換的,即可以直接把一個int類型的變量賦給一個long類型的變量。

類似的,我們可以直接把一個16位的char類型的變量賦給一個32位的int類型的變量,但是,反之便不可以,需要用顯式轉換。

首先給出一個反例如下:

int num5 = 97;

char c5 = num5;

我這里,本地用的IDE是IDEA,在寫下這段代碼的時候,就已經(jīng)標紅,報出了錯誤,提示信息為incompatible types, Required: char, Found: int,即類型不匹配,而如果我們直接運行,或者用javac來編譯的話,都會報出如下的錯誤:

Error:(34, 19) java: 不兼容的類型: 從int轉換到char可能會有損失

而如果我們先初始化一個char型的變量c6,將這個變量賦給一個int型的變量呢?

char c6 = 97;int num6 = c6;System.out.println('c6: ' + c6);System.out.println('num6: ' + num6);

輸出:

c6: a

num6: 97

是可以正確地輸出的,也可以看出從char到int是可以隱式轉換的。

如果我們確實需要char型到int型的話,需要顯式的強制轉換:

int num7 = 97;char c7 = (char) num7;System.out.println(c7);

輸出:

a

這里,由于是強制轉換,將一個較多位數(shù)的類型轉換成一個較少位數(shù)的類型,因此,可能會有損失發(fā)生,若int的數(shù)字大于65535,則會丟棄16位以外的數(shù)字,如下例:

int num8 = 65536 + 97;char c8 = (char) num8;System.out.println(c8);// 打印num8與c8的十六進制輸出System.out.println(Integer.toHexString(num8));System.out.println(Integer.toHexString(c8));

輸出:

a1006161

可以看到,num8的十六進制表示為0x0001 0061,直接將第一個字節(jié)丟棄,變?yōu)?x0061,即97,對應的字符為’a’。

一些技巧

在上面,我們看到了,char其實也是一個數(shù)字,所以,可以利用這樣的特性,在編程的時候,使用一些小技巧。

比如,有一個字符為’1’,我們想將其變?yōu)閿?shù)字1,或者,我們想將一個int類型的數(shù)字1轉換為字符’1’,這時,我們就可以這樣寫:

// ’1’ -> 1char c9 = ’1’;int num9 = c9 - ’0’;// 1 -> ’1’int num10 = 1;char c10 = (char)(num10 + ’0’);

同樣的,如果我們想用1 - 26來表示字母’a’ 到 ‘z’ ,也可以用類似的方法來表示。

以上這篇java中char對應的ASCII碼的轉化操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美三级第一页| 久久精品人人| 蜜桃一区二区三区在线| 精品黄色一级片| 日本在线视频一区二区| 精品欧美日韩精品| 在线国产一区| 偷拍精品精品一区二区三区| 免费一二一二在线视频| 麻豆成人av在线| 99视频精品全部免费在线视频| 国产日韩免费| 日韩一区二区免费看| 国产免费播放一区二区| 欧美www视频在线观看| 亚洲深深色噜噜狠狠爱网站 | 好看不卡的中文字幕| 亚洲精品一二三区区别| 国产在线观看www| 国产日韩高清一区二区三区在线| 国产精品嫩草99av在线| 蜜桃视频免费观看一区| 亚洲欧美久久久| 亚洲精品成a人ⅴ香蕉片| 另类欧美日韩国产在线| 亚洲不卡av不卡一区二区| 亚洲精品人人| 日韩在线中文| 欧美午夜三级| 一区在线视频观看| 91精品一区| 欧美成人日韩| 国产麻豆一区二区三区| 免费欧美一区| 国产一区日韩| 自拍日韩欧美| 精品国产精品久久一区免费式| 国产视频一区免费看| 国产精品久久观看| 日本一区二区中文字幕| 国产综合婷婷| 国产一区二区三区亚洲综合| 亚洲精品乱码久久久久久蜜桃麻豆| 国产成人a视频高清在线观看| 欧美日韩黑人| 亚洲女同av| 高清av一区| 国产精品magnet| 亚洲精品三级| 2023国产精品久久久精品双| 欧美日韩尤物久久| 色综合www| 9国产精品视频| 中文字幕在线视频网站| 亚洲午夜一级| 日韩av在线播放中文字幕| 欧美国产极品| 国内激情久久| 国产欧美自拍一区| 欧美福利一区| 国产黄色一区| 国产精品大片| 91亚洲一区| 极品日韩av| 亚洲一二三区视频| 亚洲精品麻豆| 四虎成人精品一区二区免费网站| 久久亚洲风情| 日韩av中文字幕一区二区三区| 国产精品久久久久久模特| 老司机免费视频一区二区| 中文字幕高清在线播放| 欧美日韩国产高清| 日本成人在线视频网站| 精品资源在线| 亚洲欧美网站| 国产精品夜夜夜| 日韩久久一区二区三区| 美美哒免费高清在线观看视频一区二区| 日本一区中文字幕| 欧美精品中文字幕亚洲专区| 麻豆成人av在线| 成人免费一区| 成人在线免费观看网站| 久久精品99国产精品日本| 国产伦乱精品| 麻豆精品久久| 亚洲深深色噜噜狠狠爱网站 | 色一区二区三区四区| 久久精品国产999大香线蕉| 国产麻豆精品久久| 久久精品亚洲人成影院 | 亚洲深夜影院| 精品国产中文字幕第一页| 亚洲激情欧美| 精品成人18| 一级欧美视频| 日韩不卡视频在线观看| 欧美视频久久| 免费在线观看视频一区| 日韩欧美另类一区二区| 欧美一区=区三区| 红桃视频亚洲| 日韩成人免费| 国产精品色在线网站| 老色鬼久久亚洲一区二区| 国产aa精品| 久久国产三级| 热久久免费视频| 久久中文视频| 高清av不卡| 精品国产亚洲一区二区三区| 亚洲精品乱码久久久久久蜜桃麻豆| 国产精品久久久久av电视剧| 国产精品magnet| 日韩不卡手机在线v区| 久久午夜精品一区二区| 一本一道久久a久久精品蜜桃| 欧美好骚综合网| 精品99在线| 日本v片在线高清不卡在线观看| 亚洲大片在线| 久久精品国产大片免费观看| 国产 日韩 欧美一区| 精精国产xxxx视频在线野外| 亚洲女同av| 欧美不卡高清一区二区三区| 久久青青视频| 99视频精品全国免费| 亲子伦视频一区二区三区| 国产成人久久精品麻豆二区| 精品资源在线| 欧美亚洲日本精品| 久久高清免费| 欧美精品一区二区久久| 欧美成人高清| 欧美日韩国产免费观看视频| 中文在线不卡| 免费在线看一区| 日本色综合中文字幕| 青青伊人久久| 国产精品久久久久久久久妇女| 天堂中文在线播放| 亚洲女同中文字幕| 久久国产三级精品| 91一区二区三区四区| 99日韩精品| 国产日韩亚洲欧美精品| 国产中文欧美日韩在线| 亚洲深夜av| 国产精品www.| 91亚洲国产| 日韩二区在线观看| 日韩在线视频精品| 四虎精品一区二区免费| 不卡一二三区| 日本成人在线一区| bbw在线视频| 日韩国产欧美视频| 亚洲天堂免费电影| 日本不卡视频在线观看| 裤袜国产欧美精品一区| 日韩影院免费视频| 欧美丰满日韩| 日本精品不卡| 国产一级一区二区| 欧美交a欧美精品喷水| 亚洲丝袜美腿一区| 久久免费视频66| 91伊人久久| 日韩精品欧美精品| 视频一区视频二区中文| 影院欧美亚洲| se01亚洲视频| 精品成人18| 91综合网人人| 国产一区二区三区网| 久久久久久婷| 久久久天天操| 免费看av不卡| 欧美久久天堂| 久久精品伊人| 国产精品黑丝在线播放| 99久久精品网| 婷婷丁香综合| 一区二区精品| 日韩 欧美一区二区三区| 青草久久视频| 国产精品亚洲片在线播放| 精品免费av一区二区三区| 中文字幕人成乱码在线观看| 美女少妇全过程你懂的久久| 国产一区二区精品| 国产精品色婷婷在线观看| 国产精品精品| 日韩精品一区第一页| 青青草伊人久久| 九色porny丨国产首页在线| 亚洲一区二区三区四区五区午夜| 深夜福利亚洲|