如何将文本值转换为本机中的二进制数据?

时间:2017-11-01 10:55:09

标签: react-native

我希望在反应本机代码中将文本值转换为二进制文件。下面的代码是用java编写的。我希望在本地反应中有类似的东西。请任何人为我提供反应原生的二进制转换解决方案。

    String s = "foo";
      byte[] bytes = s.getBytes();
      StringBuilder binary = new StringBuilder();
      for (byte b : bytes)
      {
         int val = b;
         for (int i = 0; i < 8; i++)
         {
            binary.append((val & 128) == 0 ? 0 : 1);
            val <<= 1;
         }
         binary.append(' ');
      }
      System.out.println("'" + s + "' to binary: " + binary);

//Output:
'foo' to binary: 01100110 01101111 01101111 

2 个答案:

答案 0 :(得分:0)

你可以这样做:

const convertStringToBinary = (str) => str.split("").map(l => l.charCodeAt(0).toString(2)).join(" ");

你可以这样测试:

console.log(convertStringToBinary("foo"))

enter image description here

enter image description here

答案 1 :(得分:0)

Dan的示例是一个很好的形式,如果存在,则将开头的零去除。因此,我将其编码并添加了以下内容:

  convertStringToBinary = (str) =>
    str
      .split("")
      .map((l) => l.charCodeAt(0).toString(2))
      .join(" ");

  render() {
    let arr = this.convertStringToBinary(this.state.text).split(" ");

    return (
      <>
        {arr.map((str, i) => {
          while (str.length < 8) {
            str = "0" + str;
          }
          return str + " ";
        }).join("")}
      </>
    );
  }

我正在用组件内部的动画生成动画,这就是我要走的路。