我有一个字节数组:
byte[] myPool = new byte[100];
我想存储由4个字符组成的字符串。将其视为DNA:
- A = 00
- C = 01
- G = 10
- T = 11
我如何解析并插入这些字符的字符串作为字节?不寻找代码,真正寻找可读的内容。
String example = "CGGGGT" //011010101011 aka 1707 aka 0x6AB
myPool.insert(example); //assume empty pool at start
然后我希望myPool [0]为0x0006并且记录从myPool [2]开始(以便能够保持长度指示器高达0xFFFF,我也不知道如何进入两个单独的数组中的字节数)
myPool [2]应为0x006A,myPool [3]应为0x00B0(最后4位为0000)。
所以我真正不明白的是如何在java中“制作”字节。
答案 0 :(得分:2)
字节实际上是原始数据类型,如int
,而不是像String
这样的对象。它们存储介于-128和127之间的数字。你可以创建一个这样的:
byte myByte = 0;
并将其存储起来:
myPool[0] = myByte;
请记住,当您存储字节编号1
时,其在二进制中的表示将类似于00000001
。 2
看起来像00000010
。
您面临的最大挑战是将这些值中的四个(A C G T)打包成一个字节。您最好的选择是使用四个运营商:
&
,这是一个按位AND。例如,你可以用它来通过底部两位。|
,这是一个按位OR。您可以使用它将新位组合到您正在构建的现有字节中。<<
,这是一个左移。它将值“left”移动一定数量的位置,相当于乘以2的幂。>>
,这是一个右移。它将值“右”移动一定数量的位置,相当于除以2的幂。希望有所帮助,如果这是一项任务,祝你好运!