猿问

&操作符的疑惑

package com.imooc;

import java.lang.*;

import java.util.Arrays;


public class Main {


public static void main(String[] args)

{

int a = -1;

long b = (long)a & (long)0xffffffff;  //为啥b会等于-1不应该是个正数吗

System.out.println(b);

short c = -1;

int d = c & 0xff;

System.out.println(d); //这里d为255

}

}


cainiaoqianjin
浏览 1188回答 1
1回答

HansonQ

public class A { public static void main(String[] args) { int a = -1; //两个操作数中 位都为1,结果才为1,否则结果为0,例如下面的程序段 这是&运算符 long b = (long) a & (long) 0xffffffff; // 为啥b会等于-1不应该是个正数吗 System.out.println(b); short c = -1; int d = c & 0xff; //类型转换  System.out.println(d); // 这里d为255 } }
随时随地看视频慕课网APP

相关分类

Java
我要回答