簡體   English   中英

從十進制更改為二進制

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM