以字节[knownsize]存储长度为2比特状态的java
我有一个字节数组:
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中“生成”字节
# 1 楼答案
字节实际上是一种基本数据类型,如
int
,而不是对象,如String
。它们存储一个介于-128和127之间的数字。您可以这样创建一个:并按如下方式存储:
请记住,当您存储字节号
1
时,其二进制表示形式将类似于00000001
2
将看起来像00000010
您最大的挑战是将其中的四个值(一个CGT)打包成一个字节。您的最佳选择将涉及使用四个操作符:
&
,它是按位AND。例如,您可以使用它仅允许通过底部的两位李>|
,它是按位OR。您可以使用它将新位合并到正在构建的现有字节中李><<
,这是一个左移。它将值“向左”移动一定数量的位置,相当于乘以2的幂李>>>
,这是右移。它将值“向右”移动一定数量的位置,相当于除以2的幂李>希望这有帮助,如果这是一项任务,祝你好运