天天看點

c++ char 轉int_程式員每日一題-int和char還可以一起玩耍解析知識擴充

每天一題,進步一點。大家好,我是程式員小魚騎白馬。

直接上題:

c++ char 轉int_程式員每日一題-int和char還可以一起玩耍解析知識擴充

答案為50

解析

在計算機中,所有的資料在存儲和運算時都要使用二進制數表示,例如,像a、b、c、d這樣的字母以及各種符号,還有作為字元的數字,都要使用二進制數字來表示,是以需要一種二進制碼與這些字元的對應關系。

而現在普遍遵守的對應關系就是ASCII編碼

c++ char 轉int_程式員每日一題-int和char還可以一起玩耍解析知識擴充

由此可以看出,字元最終可以表示為一個數字(十進制的ascii碼)。

我們來看一下int和char的範圍

1.int

類型是一個32位的資料類型,因為其位有符号數,是以,其取值範圍為:-2^31 至 2^31 - 1。

2.char

為16位的資料,為無符号數,其範圍為:0 至 2 ^ 16-1,即 0 - 65535,用十六進制碼來看,則為:’ ’ - ‘’。

是以char完全可以轉為int,但是int不一定可以轉為char,超過65535就會報錯。

基于以上特性,char和int隻要在不超限的情況下是可以直接加減的,如

char c1= 'a' + 1;

int n2 = 'a' + 1;

System.out.println("c1: " + c1);

System.out.println("n2: " + n2);

System.out.println("(char) n2: " + (char) n2);

輸出:

c: b

n2: 98

(char) n2: b

知識擴充

有一個字元為'1',我們想将其變為數字1,或者,我們想将一個int類型的數字1轉換為字元'1',這時,我們就可以這樣寫:

1轉為'1':

int n = 1;

char c = (char)(n + '0');

'1'轉為1:

char c = '1';

int n = c - '0';

大家可以思考一下為什麼,在下面留言