任务是从给定的整数中获取每个字节。这是我看到某处的办法:Java:>>> operator vs 0xff
byte[] bytes = new byte[4];
bytes[0] = (byte) ((id >> 24) & 0xff);
bytes[1] = (byte) ((id >> 16) & 0xff);
bytes[2] = (byte) ((id >> 8) & 0xff);
bytes[3] = (byte) (id & 0xff);
这将导致相同的分手,因为这:
bytes[0] = (byte) (id >>> 24);
bytes[1] = (byte) (id >>> 16);
bytes[2] = (byte) (id >>> 8);
bytes[3] = (byte) (id);
其中,id
是一个整数值,将ALWAYS
是无符号。事实上,我没有看到在第一种方法中需要AND with 0xff
(不是吗?因为我们总是使用最低有效字节)。
这两种方法有什么区别,哪一种更受欢迎?
“id是一个整数值,并且总是无符号的”int“总是用Java签名。你的意思是说这是积极的吗?不过,这并不重要。两种方法都是相同的 - 即使用'>>'而不是'>>>' – leonbloy
我的意思是,我知道id将保存的值,它永远不会保留负整数。 – user1071840