[問題] long long + printf("%015d",intll)輸ꔠ…

看板C_and_CPP (C/C++)作者 (小豆豆)時間15年前 (2010/08/11 13:13), 編輯推噓0(007)
留言7則, 3人參與, 最新討論串1/1
我用 struct BN { long long value[30]; }; BN array[1001]; array[1].value[0]=111111111111111LL; array[1].value[1]=011111111111111LL; printf("%015d\n",array[1].value[1]); 結果輸出為 000001227133513 .... 這是為什麼?? 我想要可以儲存0123這種數字進陣列的方法 我大概知道要怎麼做大數了 當我value[0]到達10000000時 要進位到 value[1] 但是這樣 value[0] 的值不是就只剩 00000000 有辦法儲存 00000000 這種數字嗎 ? 還是有其他方法? 麻煩各位嚕 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.216.83 ※ 編輯: linkone 來自: 140.116.216.83 (08/11 13:13)

08/11 13:24, , 1F
123就是123,0123是八進位,我也不知道多少。
08/11 13:24, 1F

08/11 13:25, , 2F
....我也是剛剛發現...
08/11 13:25, 2F

08/11 13:25, , 3F
以你所說value[0]=0 %015d的目的是補0 如果value[1]=55
08/11 13:25, 3F

08/11 13:26, , 4F
會變000000000000055 其他以此類推
08/11 13:26, 4F

08/11 13:26, , 5F
%015lld或%.15lld是指long long輸出的數不滿15位前面補0
08/11 13:26, 5F

08/11 13:33, , 7F
我大概懂了 謝謝你們 ~ 希望可以順利弄出來
08/11 13:33, 7F
文章代碼(AID): #1COZ5hMZ (C_and_CPP)
文章代碼(AID): #1COZ5hMZ (C_and_CPP)