我读到只做& 0x7fffffff符号位的掩码,并没有篡改其他位.
int a = Integer.MIN_VALUE;
System.out.println(a & 0x7fffffff);
Run Code Online (Sandbox Code Playgroud)
但是,这段代码输出
0
Run Code Online (Sandbox Code Playgroud)
代替
2147483648
Run Code Online (Sandbox Code Playgroud)
这是为什么?
我在JAVA中编写了以下用于实现二进制搜索树的代码.除搜索方法外,一切似乎都运行正常.每个节点都有一个键(Item),一个String类型的Object和一个左右节点的引用.
class BinarySearchTree1
{
class Node // Node for BST
{
private int item;
private String obj;
private Node left;
private Node right;
Node(int Item,String Obj)
{
item = Item;
obj = Obj;
left = null;
right = null;
}
}
Node root; //Root of the BST
BinarySearchTree1() // Constructor
{
root = null;
}
void insert(int key,String obj) // Insertion
{
root = insertItem(root,key,obj);
}
Node insertItem(Node root,int key,String obj)
{
if(root == null)
{
root = new Node(key,obj); …Run Code Online (Sandbox Code Playgroud)