char和int的轉換關係

2021-07-26 05:44:19 字數 1286 閱讀 9454

大家都知道 char 是字元型型別,占用兩個位元組 可以儲存乙個漢字。另外特別的是 char 也是可以和int 型別互相轉換的。

一。將中文 「一」 轉換成 int 型別,然後執行, 控制台得到的結果是 19968.

int b = '一';

system.out.println(b);

19968

二。將數值 「22545」 轉換成 char 型別,然後執行, 控制台得到的結果是 中文「塹」.

char b = (char)22545;

system.out.println(b);

塹其實這樣的轉換得到的結果根本沒有什麼意義,我主要想說下為什麼會出現這樣的結果,好理性的去做自己的操作。真的想把 char 型別的數值正確的提取出來,最後會附上兩種方法。

為什麼他們互相轉換會出現這樣的結果呢?

主要原因出在它們兩個在轉換的過程中其實不是直接轉換,而是中間有個 二進位制的 傳遞 轉換。怎麼理解呢?將char 轉換成int 的過程其實是:cha字元--------對應ascii編碼的二進位制數--------轉換成十進位制數的int 型別值,例:

int b = '一';

system.out.println(b);

將中文 「一」 轉換成int 型別,過程是:  『一』--------100111000000000--------19968

相反將int轉換成char的過程其實是:int值--------對應ascii編碼的二進位制數--------char字元,例:

char b = (char)22545;

system.out.println(b);

將 int 值 22545 轉換成 char型別,過程是: 22545-----------101100000010001------塹

把 char 型別的數值正確的提取出來的兩種方法:

char 

numchar

= '9'

;  int  intnum = (int)numchar;  

//method 1:  

char chararray = ;  

intnum = integer.parseint(new string(chararray));  

system.out.println("method 1: " + numchar + ":" + intnum);  

//method 2:  

system.out.println("method 2: " + numchar + ":" + character.getnumericvalue(numchar));  

C 中char和int轉換

1 整數轉化字串 sprintf 在標頭檔案 include中 語法 int sprintf string format,mixed args 返回值 字串長度 strlen 轉換字元 印出百分比符號,不轉換。c 整數轉成對應的 ascii 字元。d 整數轉成十進位。f 倍精確度數字轉成浮點數。o ...

PCB Genesis原點座標轉換關係

一.genesis原點座標轉換關係 1.讀取genesis座標轉換 ui介面座標 檔案座標 偏移值 2.寫入genesis座標轉換 檔案座標 ui介面座標 偏移值 3.為了說清楚轉換關係,這裡以讀取genesis座標圖示 4.不再糊塗,徹底說明白,這裡再次配一張圖示。1.讀取原點座標 獲取step原...

px與rem的轉換關係

rem是相對於根元素,這樣就意味著,我們只需要在根元素確定乙個參考值 例如20px 這個參考值設定為多少,完全可以根據您自己的需求來定。在瀏覽器預設的字型大小16px的情況下,來看一些px單位與rem之間的轉換關係 px rem 12 12 16 75 14 14 16 875 16 16 16 1...