ForHosting KIT · 開発者向けツール

バイト配列→整数計算機

バイト0、1、2、3をビッグエンディアンで読むと66051(十六進で0x00010203)、リトルエンディアンで読むと50462976になります。1〜8バイトを入力して順序を選べば、正確な整数を十進と十六進で確認できます。ブラウザで無料で使えます。

  • 無料
  • ブラウザで動作
  • 登録不要
  • データは端末の外に出ません
ご利用方法 ウェブAPIメールTelegramアプリ 近日
入力した場合
バイト列
0, 1, 2, 3
エンディアン
Big
結果
バイト数
4
ビット幅
32
10進数
66051
Hex
0x00010203

バイナリプロトコル、ファイル形式、ネットワークパケットは、複数バイトの整数を順序付きバイト列として格納します。同じ4オクテットでもビッグエンディアンとリトルエンディアンでは全く異なる数値になるため、技術者や学習者にはシフト順を推測せずにバイト配列を1つの整数へ確定的に変換する手段が必要です。このバイト配列→整数計算機は、符号なしバイト値を1〜8個(各0〜255)とエンディアン選択を受け取り、結合した符号なし整数を正確な十進文字列、収まる場合は安全なJavaScript数値、および0x接頭辞付きのゼロ埋めhexとして返します。

バイト順が配列を1つの整数に変える仕組み

符号なし複数バイト整数は、単に基数256の位取り表記です。n個のバイトB0, B1, …, Bn−1がそれぞれ0–255のとき、ビッグエンディアンはB0を最上位バイトとみなし、値はB0×256^(n−1) + B1×256^(n−2) + … + Bn−1×256^0です。

リトルエンディアンは有意性を反転し、配列先頭が最下位バイトとなり、値はB0×256^0 + B1×256^1 + … + Bn−1×256^(n−1)です。

この2式により、同じ配列[0x01, 0x02, 0x03, 0x04]はビッグエンディアンでは0x01020304(十進16909060)、リトルエンディアンでは0x04030201(十進67305985)になります。TCP/IPなどのネットワークプロトコル、多くのワイヤ形式、多数のファイルヘッダはビッグエンディアン(ネットワークバイト順)を使います。

本機能はプラットフォームを推測しません。ネットワークキャプチャのhexダンプとIntelプロセスメモリのダンプの両方を正しく変換するため、エンディアンを明示する必要があります。実装はバイトごとに8ビットの厳密なBigIntシフトで整数を積み上げるため、1〜8バイトの各幅で浮動小数点丸めなしにビット単位で正確な結果になります。

より広い値でも正確な十進文字列とhexは常に返り、クライアントが下位ビットを失うことはありません。

固定バイト配列でエンディアンを教える

バイト[0x12, 0x34, 0x56, 0x78]を固定したままエンディアンを切り替え、ネットワーク順とホストのリトルエンディアンで異なる整数になる様子を学習者に示します。

バイナリヘッダパーサ向けCI検査

言語固有のアンパッカが、1〜8バイトのビッグ/リトルエンディアン事例でこの決定的オラクルと一致し、浮動小数点ドリフトがないことを検証します。

ビッグエンディアンとリトルエンディアンの違いは?

ビッグエンディアンは配列先頭を最上位バイト(ネットワーク順)とみなします。リトルエンディアンは先頭を最下位バイト(x86ホストで一般的)とみなします。

ネットワークのパケットはどちらのバイト順ですか?

TCP/IPなどのネットワークプロトコル、多くの通信形式やファイルのヘッダーはビッグエンディアン(ネットワークバイト順)です。x86のメモリやWindowsの実行ファイルのヘッダーはリトルエンディアンなので、バイトの出どころに合わせて選んでください。

十六進の結果に先頭の0が残るのはなぜですか?

1バイトごとに十六進2桁で埋めて表示するため、幅がひと目で分かります。4バイトなら必ず8桁になり、先頭の0のバイトも消えません。十進は先頭の0を付けずに表示します。

バイト列はどうやって1つの数になりますか?

各バイトを256進数の1桁として扱います。ビッグエンディアンでは最初のバイトが最上位で、256の最も大きいべき乗を掛けます。リトルエンディアンでは最初のバイトが最も下位になります。

何バイトまで変換できますか?

1〜8バイトまでで、各バイトは0から255の整数です。8バイトは64ビットの整数に当たる一般的な幅で、それを超える長さや範囲外の値は受け付けません。

このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。

POSThttps://api.kit.forhosting.com/dev/bytes-to-integer

Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。

curl -X POST https://api.kit.forhosting.com/dev/bytes-to-integer \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"bytes":[0,1,2,3],"endianness":"big"}'
{
  "bytes": [
    0,
    1,
    2,
    3
  ],
  "endianness": "big"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.bytes_to_integer",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。

1リクエストあたり$0.002

単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。

HTTPコード意味
401unauthorizedAPIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。
402insufficient_balance残高が不足しています。チャージ後に再度お試しください。
404unknown_type指定されたタスクタイプは存在しません。タイプ名を確認してください。
429rate_limitedリクエストが多すぎます。しばらく待ってから再度お試しください。

hexダンプやパケットキャプチャから長さ接頭辞、マジックナンバー、シーケンスカウンタ、複数バイトフィールドを復号する用途に適しています。

バイト順が配列を1つの整数に変える仕組み

x86およびx86-64のメモリ配置、Windows PEフィールド、リトルエンディアン生態系の多くはLSB先頭です。任意フィールドdecimal_numberは、符号なし結果がJavaScriptの安全整数範囲(最大2^53−1)に収まる場合のみ現れます。

入力契約、応答フィールド、検証エラー

bytesは0から255までの整数1〜8個の空でない配列です(要素ごとに数値文字列、0x接頭hex、0b接頭二進も受け付けます)。endianness欠落や未知トークンも許可値を列挙した明確なメッセージで失敗します。同じbytesをlittleにするとdecimal 50462976とhex 0x03020100になります。必須フィールド2つのJSON本体をPOSTしてください。endiannessはbigまたはlittleで、エイリアスとしてbe、le、big_endian、little_endian、msb、lsbを受け付けるため、SDKラッパと人手フォームが同じハンドラにきれいに対応します。空配列、9個以上、非整数、0–255外は問題を示すinvalid_inputで失敗し、課金されません。成功時は正規化したbytes配列と正規のendianness(常にbigまたはlittle)、byte_count、bit_width(長さの8倍)、先頭ゼロなし(ゼロ自体を除く)の基数10文字列decimal、入力バイトごとに2桁へゼロ埋めした大文字0x接頭hexを返し、パケットフィールド幅の見た目を安定させます。整数がNumber.MAX_SAFE_INTEGER以下のとき、数値型を好む言語向けにdecimal_numberをJSON数値として含めます。より大きな符号なし値ではnullではなくフィールド自体を省略し、任意出力は消えるというフレームワーク規則に従います。例: bytes [0, 1, 2, 3] とendianness bigはdecimal 66051、hex 0x00010203、bit_width 32、decimal_number 66051を返します。

バイトから整数へのツールが役立つ場面

プロトコルのリバースエンジニアリング、CTFのバイナリ課題、組み込みファームウェアでは、hexダンプの短いバイト列を長さ・オフセット・タイムスタンプ・識別子として読める整数へ変換する作業が常に必要です。エンディアンを教える指導者には、配列を固定したままバイト順フラグだけを切り替えるライブのオラクルが必要で、同じメモリダンプでもネットワーク順とホスト順が食い違う理由を学習者が見られます。検証失敗は残高を消費しません。Nodeやエッジワーカーで固定バイナリヘッダを解析する継続的インテグレーションのスクリプトは、1つの複数バイトフィールドのために巨大なバイナリ解析ライブラリを引き込む代わりに、小さな純粋関数を使えます。実装はpure parseのティアAのため、成功した各呼び出しは公開の基本料金$0.002で、モデルトークンも外向きネットワークもありません。リクエストは最大8バイト(uint64フィールドの一般的な幅)に抑え、decimalとhexをテストに固定すれば、パケット演習、hexダンプ解説、自動化向けに再現可能な整数復号が得られ、配布する各言語ごとにシフトとマスクのヘルパーを自前で立てる必要はありません。

パケットhexダンプから複数バイトフィールドを復号

キャプチャから長さ・ポート・シーケンス番号のバイトを貼り付け、bigまたはlittle endianを選び、そのフィールドの正確な十進とゼロ埋めhexの整数を読み取ります。

バイト配列を整数へどう変換しますか?

bytesに0–255の整数1〜8個の配列を、endiannessにbigまたはlittleを送ります。APIは結合した符号なし値を十進(文字列)とhex(0x接頭・ゼロ埋め)で返します。

最大長が8バイトなのはなぜですか?

8バイトは符号なし幅で最大64ビット(uint8–uint64)を覆い、大半のプロトコルとファイル形式のフィールドに合います。それより広い多倍長整数はこの計算機の対象外です。

decimal_numberはいつ省略されますか?

符号なし結果がJavaScriptの安全整数範囲(2^53−1)を超えるときです。正確な十進文字列とhexは常にあり、任意の数値フィールドはnullではなく省略されます。

バイト配列→整数計算機の料金は?

ブラウザツールは無料です。API要求は成功1回あたり$0.002の前払いKIT残高を使い、無効入力は課金されません。

KITの完全なドキュメントを見る →