Почему java-компилятор не позволяет мне помещать 0xff
в byte
, 0xff
длиной 8 бит, которая равна размеру byte
datatype.
Может кто-нибудь объяснить, почему 1 работает и почему 2 не делает?
class a
{
public static void main(String[] args)
{
// 1 :: results in error
byte a = 0xff;
System.out.printf("%x\n",a);
//2 :: works fine
byte a = (int)0xff
System.out.printf("%x\n",a);
}
}
EDIT Я прочитал ответ, утверждая, что 0xff 255, как это сделать? Разве это не 1111 1111
, что делает 0xff, -128 или 255 или что-то в этом роде. Почему это будет не просто рассматривать его как 1111 1111
, а не 8 бит этого байта в 1.