![](/img/trans.png)
[英]Two-part code for binary-decimal conversion isn't giving desired output for fractional binary numbers
[英]My conversion from decimal to binary can't deal with negative numbers
我正在將十進制轉換為二進制,並且我的代碼適用於正數,但是當我嘗試轉換負數時會崩潰。 當它崩潰時,我得到了錯誤
Exception in thread "main" java.lang.StackOverflowError
我的代碼是從main的for循環中調用的,該循環從-8到+7。 這是轉換的代碼
public char[] decimalToBinary(int value)
{
int remainder;
char[] result = new char[10];
if (value <= 0)
{
return result;
}
remainder = value %2;
decimalToBinary(value >> 1);
System.out.print(remainder);
return result;
}
這是main中的for循環,它調用上述方法
int min = -8;
int max = +7;
for (int i = min; i <= max; ++i)
{
char[] binaryStr = s.decimalToBinary(i);
}
下面的示例是基於您的邏輯的工作代碼:
public static void decimalToBinary(int value) {
int remainder;
if (value == 0) {
return;
}
remainder = value % 2;
decimalToBinary(value >>> 1);
System.out.print(remainder);
}
您應考慮到負數將使用其2的補數表示。
同樣,該方法不再返回char
數組,因為根本沒有使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.