在整数的开头和结尾加上零-二进制输出

昨天我发布了一个有关该程序的问题,但实际上,我已经编程了一种编码器,该编码器接受一个字符串和一个整数,然后将整数值添加到字符串中的每个字符,然后最终输出字符串的二进制,假定每个符号或字符为8位。例如,带有整数(代码)4的ABC应该输出01000101 01000110 01000111(EFG)。现在,我已经非常接近完成该项目,但是在将每个字符转换为二进制时遇到了一个问题,我认为这是由于我实际上是如何计算二进制的。示例:如果一个二进制整数以0开头,那么显然我将需要在最左侧用0填充该整数。一世' ve设法做到了,但是在某些情况下整数以0结尾并且我需要做同样的事情,除了最右边的...我不确定我是否100%有意义,但是我已经发布了我的代码并在下面给出预期结果的测试结果。如您所见,它转换得几乎完美,只是中间(B)的值添加了额外的2个零而不是最左边的零,而且我还没有弄清楚如何检查添加的结尾零。有人可以帮帮我吗?我应该如何处理字符转换为二进制(8位)的问题?t弄清楚了如何检查是否添加了结尾的零。有人可以帮帮我吗?我应该如何处理字符转换为二进制(8位)的问题?t弄清楚了如何检查是否添加了结尾的零。有人可以帮帮我吗?我应该如何处理字符转换为二进制(8位)的问题?

我还需要弄清楚如何将二进制解码为原始消息。示例:InputMessage:01000101 01000110 01000111,InputCode:4 OriginalMessage:ABC


倚天杖
浏览 170回答 2
2回答

森栏

正如您所说,您快完成了。但是二进制编码没有按预期工作。这是我的建议:  public static void getBinaryMsg(String codedMessage) {    String binary = toBinary(codedMessage);    System.out.println(binary);  }  private static String toBinary(String codedMessage) {    String binary = codedMessage.chars().boxed().map(c -> pad(Integer.toBinaryString(c), 8, '0') + " ").collect(Collectors.joining());    return binary;  }  private static String pad(String s, int n, char c) {    return String.format("%"+n+"s", Integer.parseInt(s)).replace(' ', c);  }使用Integer.toBinaryString(int i)您不必重新发明轮子。您唯一需要添加的就是填充,以将每个二进制格式格式化为八位。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java