В Javaпобитовое Операция вычисления Detail
byte a = -40;
System.out.println(a);
System.out.println(a&0xff);
Выход:
-40
216
Может кто-нибудь объяснить операции подробно?
В Javaпобитовое Операция вычисления Detail
byte a = -40;
System.out.println(a);
System.out.println(a&0xff);
Выход:
-40
216
Может кто-нибудь объяснить операции подробно?
Вот программа, которую вы можете попробовать, чтобы увидеть, как немного мудрым и работать
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Test
{
public static void main (String[] args) throws java.lang.Exception
{
byte a = -40;
System.out.println(a);
System.out.println(Integer.toBinaryString(a));
System.out.println(0xff);
System.out.println(Integer.toBinaryString((int)0xff));
System.out.println(a&0xff);
}
}
Объяснение
-40 = 11011000
0xff = 11111111
----------------
216 = 11011000
Кто дает отрицательный голос, пожалуйста, объясните, почему вы даете голос? –
Я странно побитовый operator.Now я получаю it.Here моего ответа:
В Java один байты составляет 8 бит, поэтому
-40 -> 1101 1000
0xff
Как типа int
32 бита, поэтому деталь является:
1111 1111 1111 1111 1111 1111 1101 1000
AND
0000 0000 0000 0000 0000 0000 1111 1111
=
0000 0000 0000 0000 0000 0000 1101 1000
Операция & выполняет "И" операцию на каждый бит аргументов.
побитовое И ведет себя так:
In | In | Out
0 | 0 | 0
0 | 1 | 0
1 | 0 | 0
1 | 1 | 1
В основном то, что у вас есть что-то вроде этого:
11011000 (-40)
11111111 (0xFF or 255)
11011000 (216)
В основном все биты сохраняются, потому что они все операции AND 1s. Однако число отличается от того, что отрицательные числа представлены дополнением двух. Это означает, что что-то вроде «-1» можно прочитать как 255. В вашем случае число -40 переинтерпретируется как 216 (что составляет 256-40).
Мой хрустальный шар сломан сегодня. Что вас смущает? – 4castle
Хорошее домашнее задание у вас там. – tnw
С вашей точки зрения, на самом деле это простой вопрос. Но я думаю, вы не должны смеяться надо мной! @tnw – cole