“`java 编写2补码字节 Java代码 “`

huangapple go评论74阅读模式
英文:

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>



huangapple
  • 本文由 发表于 2020年8月27日 21:08:56
  • 转载请务必保留本文链接:https://go.coder-hub.com/63616711.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定