[英]Changing from decimal to binary
我正在使用此示例代碼來幫助我完成從十進制到二進制數字的轉換: http : //www.planet-source-code.com/vb/scripts/ShowCode.asp? txtCodeId=13734&lngWId =3可以將十進制轉換為二進制。
我成功嘗試了較小的數量。 但是,當我添加一個數字時,例如:2159492075或2159492195。該程序僅輸出0
。 我也嘗試過使用大小相等的數字,例如1234567899或2134567899,並且得到了數字的正確二進制表示形式。 我想知道為什么嗎?
最初,我認為這可能是因為將變量定義為long int:
long int dec,k=0,i=0,j=0,n,remainder,result[100];
但是,在進一步挖掘時,我認為這不是問題。 有人可以建議我可能做錯了什么嗎?
嘗試改用long long
類型。 您的問題可能不僅僅是溢出。
void convert(long long n, int arr[100], int & i)
{
i = 0;
do
{
arr[i++] = n % 2;
n /= 2;
} while (n);
for (int j = 0; j <= i / 2; ++j) swap(arr[j], arr[i - j - 1]);
}
用法:
int sz, my_arr[100];
convert(2013, my_arr, sz);
for (int i = 0; i < sz; ++i) cout << my_arr[i];
cout << endl;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.