int (16位) -32768~32767
(注:現在大多數的編譯器的int型是32位的 也就是說跟long型的大小一樣)
long long或__int64(64位)
-9223372036854775808~9223372036854775807
float(32位) 精確到小數點後6~7位
double (64位) 精確到小數點後15~16位
(注:平時做題時 都把浮點型資料定義為double型 避免精度不夠出錯)
大數計算的數和結果精度一般是少則數十位,多則幾萬位。在c/c++語言中定義的型別中精度最多只有二十多位。一般我們稱這種基本資料型別無法表示的整數為大整數。如何表示和存放大整數呢?基本的思想就是:用陣列或字串存放和表示大整數。乙個陣列或字串元素,存放大整數中的一位。
例如:大數a:1545485785212454510
大數b:15458526545451
大數c:2635578521245451
大數d:487845451
大數e:52454521247
用字串進行大數的儲存後,若進行運算,可以根據ascii表中字串元素對應的ascii值減去0的ascii值進行運算。
例如:字串中a[0]='4',其ascii值是52,0的ascii值是48,用52減去48正好是數字4。
大數運算 4 大數乘法
首先說一下乘法計算的演算法 同樣是模擬人工計算時的方法。從低位向高位乘,在豎式計算中,我們是將乘數第一位與被乘數的每一位相乘,記錄結果之後,用第二位相乘,記錄結果並且左移一位,以此類推,直到計算完最後一位,再將各項結果相加,得出最後結果。計算的過程基本上和小學生列豎式做乘法相同。為程式設計方便,並不...
大數運算 2 大數加法
大數加法的中心思想就是 模擬人工列豎式算加法的方法。先從最低位開始相加,判斷是否進1,一直到最高位。例如 求12545642233 278545的和,該怎麼算?是這樣的 3 3 2 2 4 6 5 4 5 2 1 0 2 7 8 5 4 5 0 0 0 0 0 0 5 不進製,繼續算下一位 0 進製...
大數運算 4 大數乘法
摘自 首先說一下乘法計算的演算法 同樣是模擬人工計算時的方法。從低位向高位乘,在豎式計算中,我們是將乘數第一位與被乘數的每一位相乘,記錄結果之後,用第二位相乘,記錄結果並且左移一位,以此類推,直到計算完最後一位,再將各項結果相加,得出最後結果。計算的過程基本上和小學生列豎式做乘法相同。為程式設計方便...