版權(quán)所有韧涨,轉(zhuǎn)載注明稚机。
long maxfilesize = 1024 * 1024 * 1024 *2幕帆;
//maxfilesize = ? , -2147483647. Why?
開(kāi)發(fā)時(shí),設(shè)置最大文件尺寸為2GB赖条,
方法簽名:
void setFileSizeMax(long fileSizeMax)
給參數(shù)時(shí)如下寫法:
setFileSizeMax(1024 * 1024 * 1024 *2);
結(jié)果一直不對(duì)失乾,明明是2GB的量,為啥一直報(bào)超出尺寸谋币。
仔細(xì)思考了下仗扬,1024 * 1024 * 1024 *2運(yùn)算時(shí):
1024是int類型
1024 * 1024 還是int
1024 * 1024 *1024 還是int
int范圍是-2147483648 ~ 2147483647
所以,1024 * 1024 * 1024 * 2 = 2147483648蕾额,超出int最大值,結(jié)果呢彼城,變成了最小值-2147483648诅蝶。
正確的寫法:
setFileSizeMax(((long)1024) * 1024 * 1024 *2);