我們知道,在C、C++中進行不同類型的的數據運算時,編譯器首先要進行隱式轉換。比如(請看下圖):
int b=-1;
unsigned int c=b;
執行結果:
我的問題就在這里,
1.一個負數轉換為無符號整數(-1——>3435973836),怎么會變得這么大???底層是如何進行轉換的呢?
2.另外:65536*65536為什么就是沒有結果?一開始以為是位數太多計算機處理不了,但是我又在之前的基礎上加了2位數,居然可以!(請看下圖,注釋部分為lz在測試long long的精度,可以達到20位!)你tm在逗我?
lz計算機基礎不太好,還請各位大神賜教!不勝感激!~