英文:
Write 2-complement byte java
问题
在Java中,如果你想使用二进制表示法来表示一个数字,你可以这样写:
System.out.println(0b0001);
这将打印出 1。
如果你明确地写入了32位,它将会解释为补码形式,例如:
System.out.println(0b11111111111111111111111111111110);
将打印出 -2。
那么如何为不是32位的数字写入补码呢?(特别是对于大于32位的数字,比如长整型)
英文:
In java if you want to write a number using its binary representation you can write
System.out.println(0b0001);
Which will print 1
If you write specificaly 32 bits it will interpret it as a 2-complement ie:
System.out.println(0b11111111111111111111111111111110);
Will print -2
How could i write 2-complement for number that are not 32-bits? (specifically for number bigger than 32 bit, eg long)
答案1
得分: 1
你必须在后面加上 L
,表示这是一个 long
。
long val = 0b111111111111111111111111111111111111111111111111111111111101100L;
System.out.println(val);
输出:
-20
英文:
You have to put an L
after it indicating it is a long
.
long val =0b111111111111111111111111111111111111111111111111111111111101100L;
System.out.println(val);
Prints
-20
</details>
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论