gpt4 book ai didi

java - Java 十进制转二进制作业

转载 作者:行者123 更新时间:2023-12-01 08:16:16 24 4
gpt4 key购买 nike

我有一个作业要做十进制到二进制的转换。这是我的代码:

int num = 0;
int temp = 0;

Scanner sc = new Scanner(System.in);
num = sc.nextInt();

//System.out.print(""+ num%2+ (num%2)%2);
while(num != 0) {
temp = num;
System.out.print(""+(int) temp % 2);
num = num / 2;
}

它工作正常,但它给我的输出是 LSB 而不是 MSB。

例如:

35
110001

但我需要它是100011

我无法使用任何函数或方法来反转它。我知道我可以将它放入数组、字符串或其他任何东西中并执行一些魔法。但我只能使用 while 循环、取模和打印。

有什么建议吗?

最佳答案

您可以从顶部开始,而不是从底部开始。

int i = 35;

// find where the top bit is.
int shift = 0;
while (i >>> (shift + 1) > 0) shift++;

// print from the top bit down
while (shift >= 0)
System.out.print((i >>> shift--) & 1);

打印 i = 35

100011

打印 i = -35

11111111111111111111111111011101

关于java - Java 十进制转二进制作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13196796/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com