私のプログラムは 10 進数を 2 進数に変換する必要があります。大きな数の場合、2進数ではなく負の数が返されます。どうしてこれなの?
たとえば、私が供給すると、それで問題あり2321
ません100100010001
。しかし、私が供給し
た場合、私241242141
は得る-2127232070093227171
.
文字列、配列、関数を使用できません。文字列として定義せずに別のオプションがありますか? 出力?
import java.util.Scanner;
public class d {
public static void main(String[] args) {
long num = 0;
long temp = 0L;
Scanner sc = new Scanner(System.in);
num = sc.nextLong();
long place = 1L;
long output = 0;
//System.out.print(""+ num%2+ (num%2)%2);
while(num != 0) {
temp = num % 2;
num = num / 2;
output += (place*temp);
place *=10;
}
System.out.print(""+output);
}
}