基本資料型別之心跳陷阱 總結三

2021-09-24 16:13:10 字數 1092 閱讀 9743

題目是:假設乙個人的心跳每分鐘跳70次,或到70歲,那麼他的心臟總共跳多少下呢?

這是我最近從書上看到的乙個關於心跳的運算。說白了,就是資料型別的取值長度。咱也不分嬰幼兒、青壯年、老年心跳不一樣,也不分運動不運動,就假設每分鐘一樣,行吧?

那不就是:

public static void main(string args)
這個結果是:-1719527296。??????怎麼可能呢?乙個人的心跳數是負值呢?更何況這個是幾個正整數的相乘,沒理由會出現負值哈。懵逼吧。

貌似發現了什麼,計算結果超出了int長度。那換個方法算算。

public static void main(string args)
還是-1719527296。不行?再加個東西。

public static void main(string args)
又是-1719527296。我要卒了。換換順序呢?

public static void main(string args)
哇,終於算到了,是2575440000。那我變化下呢?

public static void main(string args)
ok,是2575440000。那在轉換下呢?

public static void main(string args)
闊以,還是2575440000。

public static void main(string args)
啪,打回原形,-1719527296。唉。

通過對比發現,計算過程中,如果遇到了更高的資料型別(int型別的資料運算中遇到了long型的資料)才做必要的轉換。所以當遇到「1l」時,已經計算了「70*60*24*365*70」結果,而此結果是int型別的,儘管表示式最後會因「1l」轉變成long型,但是溢位已經發生了,此時的「1l」並沒有起到預期效果。所以,放到前面久ok了。

另外,長整型資料的字尾是「l」或者「l」,但是建議用「l」,以免字母「l」與數字「1」混淆。

基本資料型別總結

基本資料型別 型別 型別說明 使用說明 整形integer 標準資料型別,使用前不必定義 實型reall 標準資料型別,使用前不必定義 字元型character 標準資料型別,使用前不必定義 字串型 string 標準資料型別,使用前不必定義 布林型boolean 標準資料型別,使用前不必定義 列舉...

基本資料型別總結

基本資料型別 型別 型別說明 使用說明 整形integer 標準資料型別,使用前不必定義 實型reall 標準資料型別,使用前不必定義 字元型character 標準資料型別,使用前不必定義 字串型 string 標準資料型別,使用前不必定義 布林型boolean 標準資料型別,使用前不必定義 列舉...

基本資料型別總結

一.可變和不可變型別 x 5 id x 140722754799392 x 6 id x 140722754799424 記憶體位址改變了,說明整形是不可變型別,浮點型也一樣 字串型別 str1 大傻子嗎 id str1 2368083743248 str1 臭妹妹呀 id str1 2368083...