2012-11-20 43 views
2

我有这个byte/int0001 001018)。我需要这个byte/int分成将一个字节转换为4位数后分隔的两个int值

0001 000016)和 0000 00102)。

我该怎么做到这一点在Java?

+0

这是你的教授。有多少次我提出使用StackOverflow之后,你想出了一些东西? – kjy112

+0

哈哈哈:)没有什么比这更糟的了。 @ Freak2000 - 隐藏在某个地方。你被抓到了。 ;) –

+0

哈哈,也许我应该在发布我的答案之前检查了意见 – durron597

回答

3

&是按位与。 -1611110000二进制,1500001111

public static byte[] split(byte input) { 
    byte[] output = new byte[2]; 

    output[0] = (byte) (input & -16); 
    output[1] = (byte) (input & 15); 

    return output; 
} 
+3

而不是15和-16,你也可以使用'0x0f'和'(byte)0xf0'。 –

+0

+1这似乎是最好的方式。 – arshajii

+0

或者如果您使用的是Java 7,则使用'0b11110000'和'0b00001111'。 – Jesper

相关问题