16進文字列をバイト配列に変換する

リッキー

私の質問は、Evernote APIの
メソッドをうまく使用する方法getResourceByHash(...)は?

私がしたこと:
メモの内容にem-mediaの16進ハッシュがあります:80ad525cd14de8f925487c02afc9ab21

次に、次の関数を使用して、16進数Stringをバイトに変換します。

function hex2bin(hex){
    var bytes = [];
    for(var i=0; i< hex.length-1; i+=2) {
        bytes.push(parseInt(hex.substr(i, 2), 16));
    }
    return String.fromCharCode.apply(String, bytes);    
}

var bin = hex2bin("80ad525cd14de8f925487c02afc9ab21");

次に、次のgetResourceByHash(...)方法で変数を関数に適用します

noteStore.getResourceByHash(GUID, bin, true, true, true, 
    function(err,result){
        console.log(err);
        console.log(result);
    }
);

しかし、出力は次のようになります。

{identifier: 'Resources', key: 'c280c2ad525cc3914dc3a8c3b925487c02c2afc389c2ab21'}
undefined

全体として、私は混乱しています。

マーヴィン・エミール・ブラッシュ

さらに、型の値をIntegerバイト配列に単純にプッシュすることはできません整数は32ビット(4バイト)で表されるため、最初にそのような数値を「分割」して、1バイトを1つずつ計算する必要があります。

intToByteArray = function(intToConvert) {
    var byteArray = new Array(4)

    for(var i = 0; i < byteArray.length; i++) {
        var byte = intToConvert & 0xff;
        byteArray[i] = byte;
        intToConvert = (intToConvert - byte) / 256 ;
    }

    return byteArray;
};     

前後変換のデモンストレーション(JS-Fiddle)


コード行の説明

  1. 最初に、バイトの配列を宣言します。

    var byteArray = new Array(4)
    

    配列:[00000000、00000000、00000000、00000000]

  2. ビット単位のAND演算子&を使用して、結果の値を新しい変数に割り当てながら、最初の8ビットを「キャプチャ」します。

    var byte = intToConvert & 0xff;
    

    変数で何が起こっているのか:

    intToConvert:10101010 10101010 10101010 10101010 
    AND "0xff":11111111 -------- -------- --------
    結果:10101010
  3. 次に、結果の1バイトを一時バイト配列の実際のインデックスに配置します。

    byteArray[i] = byte;
    

    配列:[10101010、00000000、00000000、00000000]

  4. これで、配列に追加されたばかりの値を減算し、整数変数から1バイトを削除するだけで済みます。

    intToConvert = (intToConvert - byte) / 256 ;
    

    2863311530-170 = 2863311360
    2863311360/256 = 11184810

    2863311360 => 10101010 10101010 10101010 00000000 
      11184810 => 10101010 10101010 10101010
    

このループを続行すると、整数から一時バイト配列にバイトごとに転送されます。したがってCharacter、16進数の1つまたは2つの整数を表す4つのシングルバイトのバイト配列を取得しますString


に変換byteする方法Integer はここでよく説明されています
したがって、更新hex2bin(String)は次のようになります。

function hex2bin(hexString) {
    var bytes = new Array(hexString.length / 2);

    for(var i = 0; i < hexString.length-1; i+=2) {
        bytes.push(
            intToByteArray(
                parseInt(hexString.substr(i, 2), 16)
            )
        );
    }

    StringBuilder sb = new StringBuilder(bytes.length * 8);
    for(byte b : bytes) {
        sb.append(Integer.toBinaryString((b & 0xFF) + 0x100).substring(1));    
    }
    return sb.toString();
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

バイト配列を16進文字列に変換する

分類Dev

16進文字列をバイト配列に変換します

分類Dev

Javaでバイト配列を16進文字列に変換する方法は?

分類Dev

16進値の文字列をバイト配列に変換する

分類Dev

Crystalで16進文字列をバイト配列に変換する方法は?

分類Dev

ASCII16進文字列をバイト配列に変換する

分類Dev

C#で16進文字列をバイト配列に変換する

分類Dev

16進文字列配列を16進配列に変換する

分類Dev

16進文字列をバイトに変換する方法

分類Dev

16進文字列をバイトに変換する方法

分類Dev

Javaでバイトを16進文字列に変換する方法

分類Dev

16進文字列をバイナリ文字列に変換する

分類Dev

16進数の配列をバイトの配列に変換する方法-python

分類Dev

16進文字列をバイト配列に変換するにはどうすればよいですか?

分類Dev

16進文字列をバイト配列に変換するプリプロセッサマクロ

分類Dev

最初に文字列に変換せずに整数に変換するJavaの16進バイト配列

分類Dev

16進配列を表す文字列をC#のバイト配列に変換します

分類Dev

16進文字列をバイトに変換します[]

分類Dev

16進バイト配列の文字列表現をJavaの非ASCII文字の文字列に変換します

分類Dev

Javaで16進文字列をバイト値に変換する方法

分類Dev

デリミタと16進文字列にバイト配列を変換しますか?文字列に表示される最後の文字を削除しますか?

分類Dev

人はどのようにJavaを学びますか?(バイト配列を16進文字列に変換)

分類Dev

int配列を16進文字列に変換する方法

分類Dev

文字列を16進配列データに変換する

分類Dev

文字列の 16 進コードをバイトの 16 進コードに変換する (java)

分類Dev

GJSで文字列をUTF-16バイト配列に変換する

分類Dev

Javascriptで16進文字列を1バイトに、1バイトを16進文字列に変換するにはどうすればよいですか?

分類Dev

奇数の長さのJava文字列を16進バイト配列に変換します

分類Dev

PHP16進文字列をバイト配列に変換-VB.NetをPHPに変換

Related 関連記事

  1. 1

    バイト配列を16進文字列に変換する

  2. 2

    16進文字列をバイト配列に変換します

  3. 3

    Javaでバイト配列を16進文字列に変換する方法は?

  4. 4

    16進値の文字列をバイト配列に変換する

  5. 5

    Crystalで16進文字列をバイト配列に変換する方法は?

  6. 6

    ASCII16進文字列をバイト配列に変換する

  7. 7

    C#で16進文字列をバイト配列に変換する

  8. 8

    16進文字列配列を16進配列に変換する

  9. 9

    16進文字列をバイトに変換する方法

  10. 10

    16進文字列をバイトに変換する方法

  11. 11

    Javaでバイトを16進文字列に変換する方法

  12. 12

    16進文字列をバイナリ文字列に変換する

  13. 13

    16進数の配列をバイトの配列に変換する方法-python

  14. 14

    16進文字列をバイト配列に変換するにはどうすればよいですか?

  15. 15

    16進文字列をバイト配列に変換するプリプロセッサマクロ

  16. 16

    最初に文字列に変換せずに整数に変換するJavaの16進バイト配列

  17. 17

    16進配列を表す文字列をC#のバイト配列に変換します

  18. 18

    16進文字列をバイトに変換します[]

  19. 19

    16進バイト配列の文字列表現をJavaの非ASCII文字の文字列に変換します

  20. 20

    Javaで16進文字列をバイト値に変換する方法

  21. 21

    デリミタと16進文字列にバイト配列を変換しますか?文字列に表示される最後の文字を削除しますか?

  22. 22

    人はどのようにJavaを学びますか?(バイト配列を16進文字列に変換)

  23. 23

    int配列を16進文字列に変換する方法

  24. 24

    文字列を16進配列データに変換する

  25. 25

    文字列の 16 進コードをバイトの 16 進コードに変換する (java)

  26. 26

    GJSで文字列をUTF-16バイト配列に変換する

  27. 27

    Javascriptで16進文字列を1バイトに、1バイトを16進文字列に変換するにはどうすればよいですか?

  28. 28

    奇数の長さのJava文字列を16進バイト配列に変換します

  29. 29

    PHP16進文字列をバイト配列に変換-VB.NetをPHPに変換

ホットタグ

アーカイブ