use*_*004 5 java ones-complement
我想在输入二进制数后制作一个程序来计算1的补码.这就是我所要做的:
import java.util.Scanner;
public class BitWiseComplement {
public static void main(String[] args) {
Scanner keysIn = new Scanner(System.in);
System.out.println("Please enter your number: ");
long originalNum = keysIn.nextLong();
System.out.println(~originalNum);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我输入0111011时,我得到-111012.我认为〜运算符应该反转数字,以便所有0都是1,所有1都是0.
有帮助吗?
ars*_*jii 11
你可能想用二进制工作,所以试试:
Scanner keysIn = new Scanner(System.in);
System.out.print("Please enter your number: ");
long originalNum = keysIn.nextLong(2); // specify radix of 2
System.out.println(Long.toBinaryString(~originalNum)); // print binary string
keysIn.close();
Run Code Online (Sandbox Code Playgroud)
Please enter your number: 0111011 1111111111111111111111111111111111111111111111111111111111000100
如您所见,所有位都被翻转.请记住,您输入的二进制数前面有前导0.
| 归档时间: |
|
| 查看次数: |
13654 次 |
| 最近记录: |