Устройство, с которым я пытаюсь установить связь, принимает 7-битные символы ASCII с четной четностью. При попытке преобразовать символ UTF-8 я приводил его к целому числу, а затем к двоичной строке. проверьте строку и затем установите бит четности, если это необходимо.
Однако при преобразовании его обратно с помощью Byte.parseByte я получаю NumberFormatError, если установлен бит со знаком. Как я могу обойти это?
public byte addParity(byte b){
int a = (int)b;
int c = 0;
String s = Integer.toBinaryString(a);
for(int i=0; i!=(8-s.length());)
{
s = "0" +s;
}
for(int i=0; i<s.length(); i++){
if(s.substring(i, i+1).equals("1"))c++;
}
if(c%2==0)return b;
else return Byte.parseByte(("1"+s.substring(1)),2);
}