Java 将二进制转换为小数和字符
我想将二进制转换成小数和如下字符:Java 将二进制转换为小数和字符,java,Java,我想将二进制转换成小数和如下字符: 11010 --> 1101 + 0(parity bit) -->decimals= 11 --> char ";" 10101 --> 1010 + 1 -->decimals= 5 --> char "5" . . public class stringek { String bitek = "1101010101001000001000001"; String[] bit
11010 --> 1101 + 0(parity bit) -->decimals= 11 --> char ";"
10101 --> 1010 + 1 -->decimals= 5 --> char "5"
.
.
public class stringek {
String bitek = "1101010101001000001000001";
String[] bits;
String four;
char par;
int parity;
String digits;
int n = 0;
int b;
int kurens;
int decimalis;
int digit;
public stringek() {
this.kurens = 0;
bits = new String[200];
for (int i = 0; i < 25; i += 5) {
bits[n] = bitek.substring(i, i + 5);
n++;
}
for (int i = 0; i < n; ++i) {
int j = 0;
four = bits[i].substring(j, j + 4);
for (int p = 0; p < 4; ++p) {
b = Integer.parseInt(four.substring(p));
kurens += b;
}
par = bits[i].charAt(j+4);
//System.out.print(par);
parity = par-'0';
decimalis = Integer.parseInt(four, 2);
digit = decimalis + 48;
if ((kurens + parity) % 2 == 0) {
System.out.println("Binarys: "+four+"-"+par+" = "+"'"+(char)digit+"'"+" Decimalis:"+decimalis+" Parity <INVALID> ");
}
else{
System.out.println("Binarys: "+four+"-"+par+" = "+"'"+(char)digit+"'"+" Decimalis:"+decimalis+" Parity <VALID> ");
}
}
}
}
但我的计划的结果是:
Binarys: 1101-0 = '=' Decimalis:13 Parity <INVALID>
Binarys: 1010-1 = ':' Decimalis:10 Parity <VALID>
Binarys: 0010-0 = '2' Decimalis:2 Parity <INVALID>
Binarys: 0001-0 = '1' Decimalis:1 Parity <INVALID>
Binarys: 0000-1 = '0' Decimalis:0 Parity <VALID>
有人能帮我解决吗?我不得不说,因为在我的例子中,所有的奇偶校验都是有效的,但我不知道为什么这里的一些奇偶校验是无效的,我知道,如果给我这个结果,那么结果是无效的,但是我想知道如何在有效时解析为有效,在真正无效时解析为无效。谢谢您不会使用String.split或StringTokenizer
使用递增5的for循环,检查字符串的长度
使用String.substring提取5个字符串。
要计算所需目标数组的长度,需要将字符串长度除以5。更好的方法是使用列表。使用对象,特别是固定长度。。。方法,该方法完全执行您要执行的操作
Splitter splitter = Splitter.fixedLength(5);
Iterable<String> tokens= splitter.split(myVeryLongString);
我想要…我想要。。。你做了什么?答案是:你不会使用你列出的任何东西。我想让我的文章自己写,让我的论文自己编造。不幸的是,在这方面做得不太好:在任何情况下,你都可能想看一看:请将其编辑到你的问题中,并解释为什么它不起作用。我会取消我的否决票。出于好奇,你能用split和lookahead吗?@SotiriosDelimanolis你相信你能,我不得不玩它。。。但是除了作为一个学习练习,我不明白你为什么要这样做。对于这个问题,你可以获得backing char[]并使用System.arraycopy,然后创建新字符串,或者。。。其他任何事情:@user3062456它通过将间隔值传递给5来帮助您我的朋友尝试它
Splitter splitter = Splitter.fixedLength(5);
Iterable<String> tokens= splitter.split(myVeryLongString);