public
class
test
}
乍一看,可能有的同學會覺得很簡單,直接給出如下答案:
10+20
=30
其實這是道陷進題,很容易就看混了,正確的答案是:
164
為什麼答案會是164
?
這是因為這裡並不是字串拼接,而是整型與字元型別的加法運算。
用一對單引號'
包括起來的是字元,用一對雙引號"
包括起來的是字串。
對於字串來說,用+
拼接起來的結果還是字串。但這道題中,用+
拼接起來的是整型和字元型別,就變成了單純的加法運算。在加法運算中,資料型別會從低位自動轉換成高位,因為高位轉低位會有資料溢位導致丟失精度的風險。
當整型與字元型別相加時,字元型別會轉換成整型,也就是轉換成對應的ascii碼值。於是乎,a + '+' + b + '=' + (a + b)
就變成了10 + 43 + 20 + 61 + (10 + 20)
,其運算結果就是164
。
public
class
test
}
這道題的答案就是10+20=30
了。
public
class
test
}
這道題的答案是:
a
65
如果我們想知道某個字元對應的ascii碼是多少,可以將其轉換成整型,這個值就是其ascii碼值。 一道java基礎題
題目 要求隨機產生20個0 100之間的數字,並對這20個數字以10的倍數進行歸類,然後列印。如 10 7 9 5 30 22 25 29 50 49 45 public static void main string args 隨機產生20個0 100之間的數字,並放入list中 return p...
關於字串和指標的一道小例題
str1和str2是兩個字串陣列,我們會為它們分配兩個長度為12個位元組的空間,並把 hello world 的內容分別複製到陣列中去。這是兩個初始位址不同的陣列,所以,str1和str2的值也不同。str3和str4是兩個指標,我們無需為它們分配記憶體以儲存字串的內容,只需要把它們指向 hello...
一道關於字串處理的題
題目要求 按要求分解字串,輸入兩個數m,n m代表輸入的m串字串,n代表輸出的每串字串的位數,不夠補0。例如 輸入2,8,abc 123456789 則輸出為 abc00000 12345678 90000000 include include include include include inc...