我有一個奇怪的問題。我創建了一個簡單的函數來將十進制轉換爲二進制。該參數是一個int值,它表示十進制數,該函數返回一個表示二進制數的位集。從十進制轉換爲二進制並返回位集時的問題
問題是,對於小於10000000000000000000000000000000(2,147,483,648的十進制數)的二進制數的轉換完美地工作,但是當要轉換的數字更高時,轉換不能正常工作。錯誤在哪裏?
在這裏,我向您發送功能:
bitset<15000> Utilities::getDecToBin(int dec)
{
bitset<15000> columnID;
int x;
for(x=0;x<columnID.size();x++)
{
columnID[x]=dec%2;
dec=dec/2;
}
return columnID;
}
預先感謝您的幫助! :D
更好地使用邏輯運算符而不是算術運算符:'columnID [x] = dec & 1; dec >> = 1;' – 2011-03-01 10:17:45