二進数変換(バイナリ翻訳)

文字を二進数に、二進数を文字に入力と同時に変換。16進数なども読み、各文字のビットを表示。

UTF-8・ASCII・UTF-16・旧コードページ · 7・8ビット区切りを自動判定 · ブラウザー内で処理、送信なし

01001000 01101001

2文字2バイト16ビット

例
バイト列
HU+00487248UTF-8

桁の重み

1286432168421
01001000
648

64 + 8 = 72 → H

  • 1
  • 0
  • UTF-8の目印のビット

文字にポインターを合わせるか、カーソルを動かすと、そのビットの足し算が下に表示されます。文字をタップすると、そのビットの足し算が表示されます。

変換はブラウザー内で行われ、入力した内容はどこにも送信されません。

二進数変換ツールの使い方

文字を入力すると二進数に、二進数を貼り付けると文字に戻ります。このバイナリ変換ツールは入力と同時に変換し、結果の上の表示で入力をどう読み取ったかがわかります。

二進数はスペースの有無を問わず、7ビットの区切りでも、先頭に0bが付いていても貼り付けられます。48 69のような16進数、72 105のような10進数のバイト、U+0048のようなコードポイントも読み取ります。出力は2進数・16進数・10進数・8進数から選び、区切り文字と1バイトを8ビットにするか7ビットにするかを決めて、コピーまたはダウンロードします。下のバイト列にはすべての文字のバイトが並び、1つ選ぶとそのビットを足し算できます。

二進数変換ツールの画面:「Hi」を二進数の01001000 01101001に変換し、各文字のビットと桁の重みを表示二進数変換ツールの画面:「Hi」を二進数の01001000 01101001に変換し、各文字のビットと桁の重みを表示文字か二進数か文字を入力するか、二進数・16進数・10進数を貼り付けます。どう読み取ったかは上の表示でわかり、自分で選ぶこともできます。変換結果2進数・16進数・10進数・8進数から好きな形で表示し、コピー、ダウンロード、リンクでの共有ができます。文字コード初期設定はUTF-8です。ASCII、UTF-16、古いコードページでは、同じ文字でも別のバイトになります。バイト列すべての文字をコードポイントとバイトで表示します。UTF-8の目印のビットは別の色です。ビットを足すバイトを選ぶと桁の重みが表示されます。64 + 8 = 72で、文字のHです。
開いたときの画面です(「Hi」を入力済み)。番号を選ぶと、各部分の役割がわかります。

文字を二進数に変換するには?

各文字の番号を調べ、その番号を8桁の二進数で書いて、バイトをつなげます。Hは72で01001000なので、「Hi」は01001000 01101001です。

コンピューターは文字を、共通の表で決められた番号として保存しています。ASCIIとUTF-8では、英字、数字、よく使う記号はどれも1バイト、つまり8ビットで書く0〜255の数です。数を二進数で書くには、2のべき乗に分けます。72 = 64 + 8なので、重み64と8のビットが1、残りは0です。英語以外の文字は、UTF-8では2〜4バイトになります。

文字から二進数へ、順を追ってUTF-8
  1. HU+0048= 720x481バイト01001000
  2. iU+0069= 1050x691バイト01101001
  3. éU+00E9= 2330xC30xA92バイト1100001110101001

Hi01001000 01101001

HとiはASCIIなので、UTF-8ではそれぞれ1バイトで書き、先頭のビットは詰め物の0です。éはASCIIの範囲外で、UTF-8では2バイトが必要になり、目印のビット(紫)がそのことを示します。 出典: RFC 20, RFC 3629

二進数の読み方は? 2進数を文字に変換する手順

ビットを8個ずつに区切り、1になっている桁の重み(128、64、32、16、8、4、2、1)を足して、その番号の文字を調べます。01001000は64 + 8 = 72で、文字のHです。

1バイトのいちばん左のビットの重みは128、いちばん右は1です。0で始まるバイトはただのASCII、11で始まるバイトはUTF-8の長い文字の始まり、10で始まるバイトはその続きです。先頭の0が省かれると、1001000のような7ビットの区切りになります。このツールは0を自動で補い、ちょうど1バイトにならない区切りがあればそのことを知らせます。

各ビットの重みは、右隣の2倍です128 · 64 · 32 · 16 · 8 · 4 · 2 · 1
1286432168421
01001000
648

64 + 8 = 72 → H

1286432168421
01101001
643281

64 + 32 + 8 + 1 = 105 → i

01001000 01101001Hi

1になっている桁の重みを足して、その数を表で調べます。ASCIIでは72がH、105がiで、ASCIIの番号をそのまま引き継ぐUTF-8でも同じです。 出典: nasa.gov, RFC 20

二進数のアルファベット:AからZまでの文字

大文字はA = 01000001からZ = 01011010まで、小文字はa = 01100001からz = 01111010までです。

大文字と小文字の違いは、重み32のビット1つだけです。Aは01000001、aは01100001です。数字は0 = 00110000から9 = 00111001までで、下位4ビットがその数字そのものになり、スペースは00100000です。これらは1963年に初めて公開されたASCII(小文字が加わったのは1967年)の番号で、UTF-8もそのまま引き継いでいます。

二進数のアルファベットASCII、8ビットのバイトで表記
  1. A01000001a01100001
  2. B01000010b01100010
  3. C01000011c01100011
  4. D01000100d01100100
  5. E01000101e01100101
  6. F01000110f01100110
  7. G01000111g01100111
  8. H01001000h01101000
  9. I01001001i01101001
  10. J01001010j01101010
  11. K01001011k01101011
  12. L01001100l01101100
  13. M01001101m01101101
  1. N01001110n01101110
  2. O01001111o01101111
  3. P01010000p01110000
  4. Q01010001q01110001
  5. R01010010r01110010
  6. S01010011s01110011
  7. T01010100t01110100
  8. U01010101u01110101
  9. V01010110v01110110
  10. W01010111w01110111
  11. X01011000x01111000
  12. Y01011001y01111001
  13. Z01011010z01111010
  • 重み32のビット:大文字は0、小文字は1
  • 先頭のビット:常に0(ASCIIは7ビット)
  • 1
Aは65、aは97です。大文字と小文字の違いは、どれも重み32のビットだけです。ASCIIは7ビットの文字コード(0〜127)で、1バイトに入れると先頭のビットは詰め物の0になります。 出典: RFC 20

「Hello」「Hi」「I love you」を二進数で

「Hello」を二進数にすると01001000 01100101 01101100 01101100 01101111、「Hi」は01001000 01101001、「I love you」はスペースも含めて01001001 00100000 01101100 01101111 01110110 01100101 00100000 01111001 01101111 01110101です。

ASCIIとUTF-8では英字1文字が1バイトなので、英単語のバイト数は文字数と同じで、大文字、小文字、スペースにはそれぞれ別の番号があります。「SOS」は01010011 01001111 01010011です。上部の入力欄に好きな単語や名前を入力すれば二進数になり、入力欄の下の例を選ぶこともできます。

よく調べられる単語1文字8ビット
単語二進数(ASCIIとUTF-8)ビット
Hi01001000 0110100116
Hello01001000 01100101 01101100 01101100 0110111140
Hello World01001000 01100101 01101100 01101100 01101111 00100000 01010111 01101111 01110010 01101100 0110010088
I love you01001001 00100000 01101100 01101111 01110110 01100101 00100000 01111001 01101111 0111010180
SOS01010011 01001111 0101001124
Yes01011001 01100101 0111001124
No01001110 0110111116
OK01001111 0100101116
Love01001100 01101111 01110110 0110010132
Thank you01010100 01101000 01100001 01101110 01101011 00100000 01111001 01101111 0111010172
このツールが計算した値です。ここの文字はすべてASCIIなので、ASCIIとUTF-8で同じバイトになります。単語の間のスペースは32、00100000です。 出典: RFC 20

16・24・32ビットになる文字があるのはなぜ? UTF-8の仕組み

UTF-8は英語を1文字1バイトで、それ以外の文字を2〜4バイトで書きます。éは2バイト、€と中国語・日本語・韓国語の文字の大半は3バイト、絵文字は4バイトです。

最初のバイトが文字の長さを示します。110で始まれば2バイト、1110なら3バイト、11110なら4バイトの文字で、そのあとのバイトはすべて10で始まります。残りのビットをつなげたものがその文字のコードポイントで、éはU+00E9です。見た目は1つの絵文字でも、ゼロ幅接合子(ZWJ)でつないだ複数のコードポイントのことがあり、家族の絵文字👨‍👩‍👧は18バイトになります。上部のバイト列では、目印のビットをコードポイントのビットと色分けしています。

UTF-8の4つのバイト構成RFC 3629
  1. 1バイト8ビットAU+004141001000001U+0000 – U+007FASCII:英字、数字、記号
  2. 2バイト16ビットéU+00E9C3 A9110110000111010101001U+0080 – U+07FFアクセント付きラテン文字、キリル文字、ギリシャ文字、ヘブライ文字、アラビア文字
  3. 3バイト24ビットあU+3042E3 81 8211101110001110100000011010000010U+0800 – U+FFFF中国語・日本語・韓国語の大半、インド系文字、€
  4. 4バイト32ビット😀U+1F600F0 9F 98 801111011110000101001111110100110001010000000U+10000 – U+10FFFF絵文字など、U+FFFFより上の文字
  • 目印のビット:バイト数、または「続き」
  • 文字自身のビット
  • x:文字のビットが入る場所
最初のバイトの先頭に並ぶ1がバイト数を表し(110 = 2、1110 = 3、11110 = 4)、そのあとのバイトはすべて10で始まります。C0、C1、F5〜FFのバイトは、正しいUTF-8には現れません。 出典: RFC 3629

ASCII・UTF-8・UTF-16の違い:どの文字コードを使うべき?

UTF-8を使ってください。Webの標準で、約99%のWebサイトが使っています(W3Techs、2026年10月)。ASCIIはその中の7ビットで英語だけの部分で、UTF-16はほとんどの文字を2バイトで表します。

同じ単語でも、文字コードによってビットが変わります。「Hello」はUTF-8とASCIIでは5バイト、UTF-16では10バイト、UTF-32では20バイトです。1文字を16ビットとして数える問題は、UTF-16を指しています。古いファイルでは、ロシア語のKOI8-RやWindows-1251、西ヨーロッパのWindows-1252、日本語のShift_JISといった昔の文字コードが使われています。二進数を変換して文字化けするときは、たいてい文字コードが原因なので、ツールで別の文字コードを選んでください。

同じ文字を文字コードごとにバイト数、計算値

“Hello” 5文字

  • UTF-85バイト · 40ビット
  • UTF-16BE10バイト · 80ビット
  • UTF-32BE20バイト · 160ビット
  • ASCII5バイト · 40ビット
  • Shift_JIS5バイト · 40ビット

“こんにちは” 5文字

  • UTF-815バイト · 120ビット
  • UTF-16BE10バイト · 80ビット
  • UTF-32BE20バイト · 160ビット
  • ASCII5文字を書けません
  • Shift_JIS10バイト · 80ビット

1文字のバイト: あ U+3042

  • UTF-8E3 81 82
  • UTF-16BE30 42
  • UTF-32BE00 00 30 42
  • Shift_JIS82 A0
ASCIIには128文字(0〜127)があります。UTF-8はASCIIを1バイトのまま保ち、約99%のWebサイトで使われています(W3Techs、2026年10月)。UTF-16とUTF-32はラテン文字1文字にそれぞれ2バイトと4バイトを使い、ビッグエンディアンとリトルエンディアンがあります(ここではビッグエンディアン)。 出典: webstore.ansi.org, w3techs.com, unicode.org, encoding.spec.whatwg.org

65は数値か文字か? 10進数を2進数に変換

数値としての65は、二進数で1000001です。文字として入力すると6と5の2文字になり、00110110 00110101です。

数を二進数にするには、2で割り続け、余りを最後から最初へ逆に読みます。65では余りが1、0、0、0、0、0、1と出るので、1000001です。1バイトにそろえると01000001で、これは大文字Aの番号でもあります。上部に数だけを入力すると、その値の二進数と、各桁の文字の二進数の両方が表示されます。

正解は2つツールは両方を表示します

数値としての65

数商余り
65÷ 2 =321
32÷ 2 =160
16÷ 2 =80
8÷ 2 =40
4÷ 2 =20
2÷ 2 =10
1÷ 2 =01

余りを下から上へ読みます: 1000001

64 + 1 = 65 · 1バイトでは01000001 = A

文字としての「65」

  1. 6U+0036 = 5400110110
  2. 5U+0035 = 5300110101

2文字で2バイト: 00110110 00110101

ASCIIでは数字の0〜9が48〜57なので、「6」は54です。

65と入力すると、変換結果はその文字のバイトになり、下の数値カードに1000001、0x41、文字のAが表示されます。 出典: nasa.gov, RFC 20

PythonやJavaScriptなどで文字を二進数に変換する方法

文字列をUTF-8のバイトにエンコードし、各バイトを8桁の2進数で書きます。どの言語にも短く書ける方法があります。

ここに挙げた例はどれも「Hi」を01001000 01101001に変換して元に戻すもので、実際に実行して出力を確かめています。どれもUTF-8を使うため、このツールと同じビットになります。別の文字コードで書いたバイトはビットが変わるので、変換する側と戻す側で同じ文字コードを使ってください。

Python
text = "Hi"
bits = " ".join(f"{b:08b}" for b in text.encode("utf-8"))
print(bits)
print(bytes(int(b, 2) for b in bits.split()).decode("utf-8"))
01001000 01101001 Hi

Python 3.14, 2026年10月25日で実行:上の行が出力されます。

JavaScript
const bits = [...new TextEncoder().encode("Hi")]
  .map((b) => b.toString(2).padStart(8, "0")).join(" ");
console.log(bits);
console.log(new TextDecoder().decode(
  Uint8Array.from(bits.split(" "), (b) => parseInt(b, 2))));
01001000 01101001 Hi

Node.js 22, 2026年10月25日で実行:上の行が出力されます。

Java
StringBuilder sb = new StringBuilder();
for (byte b : "Hi".getBytes(StandardCharsets.UTF_8))
    sb.append(String.format("%8s", Integer.toBinaryString(b & 0xFF))
        .replace(' ', '0')).append(' ');
String bits = sb.toString().trim();
System.out.println(bits);
String[] parts = bits.split(" ");
byte[] back = new byte[parts.length];
for (int i = 0; i < parts.length; i++) back[i] = (byte) Integer.parseInt(parts[i], 2);
System.out.println(new String(back, StandardCharsets.UTF_8));
01001000 01101001 Hi

Java 25, 2026年10月25日で実行:上の行が出力されます。

C# · .NET
using System.Text;

var bits = string.Join(" ", Encoding.UTF8.GetBytes("Hi")
    .Select(b => Convert.ToString(b, 2).PadLeft(8, '0')));
Console.WriteLine(bits);
Console.WriteLine(Encoding.UTF8.GetString(
    bits.Split(' ').Select(b => Convert.ToByte(b, 2)).ToArray()));
01001000 01101001 Hi

.NET 10, 2026年10月25日で実行:上の行が出力されます。

Go
var parts []string
for _, b := range []byte("Hi") {
	parts = append(parts, fmt.Sprintf("%08b", b))
}
bits := strings.Join(parts, " ")
fmt.Println(bits)

var back []byte
for _, p := range strings.Fields(bits) {
	n, _ := strconv.ParseUint(p, 2, 8)
	back = append(back, byte(n))
}
fmt.Println(string(back))
01001000 01101001 Hi

Go 1.25, 2026年10月25日で実行:上の行が出力されます。

どの例も「Hi」をUTF-8のバイトとして8ビットの2進数で書き出します。JavaScriptのString.lengthはUTF-16の単位を数えるため(絵文字は2)、バイト数にはTextEncoderを使ってください。 出典: encoding.spec.whatwg.org, tc39.es

二進数(バイナリコード)を発明したのは誰?

ゴットフリート・ライプニッツ(Gottfried Leibniz)はパリ科学アカデミーに寄せた1703年の論文で二進数を説明しましたが、それより前の1623年に、フランシス・ベーコン(Francis Bacon)が2種類の記号5つで文字を書く方法を発表していました。コンピューターが使う8ビットの文字コードは、ASCII(1963年)とUTF-8(1992年)から発展したものです。

1870年代のエミール・ボドー(Émile Baudot)の電信符号は、1文字をオンとオフの5単位で表しました。1974年にはアレシボ(Arecibo)電波望遠鏡が1,679ビットの絵を宇宙へ送り、2021年2月にはNASAの探査車Perseveranceが、「Dare mighty things」(果敢に挑め)を二進数で描いたパラシュートで火星に着陸しました。各文字は、アルファベットの何番目かで表されています。

二進数の歩み、1623年から2021年まで1600〜2030年、実寸の目盛り
16001700180019002000123456789
  1. 1623

    ベーコンの2文字アルファベット

    フランシス・ベーコン(Francis Bacon)は、aとbの2種類の記号5つですべての文字を表しました。32通りの組み合わせで、当時の24文字のアルファベットをまかないます。1605年に示唆し、1623年に全体を発表しました。

    aaaaa · aaaab · aaaba · aaabb … 2⁵ = 32

    出典: archive.org

  2. 1703

    ライプニッツの二進法

    ゴットフリート・ライプニッツ(Gottfried Leibniz)は、パリ科学アカデミーに寄せた1703年の論文で、0と1だけで数える方法を説明しました。

    1 · 10 · 11 · 100 · 101 · 110 · 111

    出典: gallica.bnf.fr

  3. 1870年代

    ボドーの5単位符号

    エミール・ボドー(Émile Baudot)の印刷電信機は、1文字をオンとオフの5単位で送ります。その流れをくむITA2は、今もITU-T勧告(S.1)です。

    5 → 2⁵ = 32

    出典: itu.int

  4. 1948

    「ビット」

    クロード・シャノン(Claude Shannon)の論文 A Mathematical Theory of Communication は、binary digitを縮めたビットを情報の単位として使い、この語はJohn W. Tukeyによるものだとしています。

    bit = binary digit

    出典: people.math.harvard.edu

  5. 1956

    「バイト」

    ヴェルナー・ブッフホルツ(Werner Buchholz)が1956年6月にIBMでこの語を作りました。当時は1〜6ビットのまとまりを指し、IBMのSystem/360(1964年)で8ビットに定まりました。

    1–6 bits → 8 bits

    出典: archive.computerhistory.org

  6. 1963

    ASCII

    米国規格協会(American Standards Association)が1963年6月17日にASCIIを承認しました。7ビットで128の符号です。

    A = 1000001

    出典: sensitiveresearch.com

  7. 1974

    アレシボ・メッセージ

    1974年11月16日、アレシボ(Arecibo)電波望遠鏡が1,679ビットを宇宙へ送りました。1,679 = 73 × 23と素数2つの積なので、ビットの並べ方は1通りしかなく、1枚の絵になります。

    1,679 = 73 × 23

    23 × 73

    出典: news.cornell.edu

  8. 1992

    UTF-8

    ケン・トンプソン(Ken Thompson)が1992年9月、ロブ・パイク(Rob Pike)の示した条件に沿って、ベル研究所のPlan 9のためにUTF-8を設計しました。ASCIIを1バイトのまま保ち、どの文字も最大4バイトで表します。

    é = 11000011 10101001

    出典: cl.cam.ac.uk

  9. 2021

    火星に届いたメッセージ

    2021年2月18日、探査車Perseveranceのパラシュートは、オレンジと白のパネルで「DARE MIGHTY THINGS」(果敢に挑め)を示しました。各文字をアルファベットの何番目かで表し、それを二進数にしたものです(A = 1)。

    DARE → 4 1 18 5 → 100 1 10010 101

    出典: photojournal.jpl.nasa.gov

日付と数値は一次資料によります。ライプニッツの論文はアカデミーの1703年の巻(1705年刊)に収められています。ボドーの符号は特定の年ではなく、1870年代のものとされています。

二進数(バイナリコード):よくある質問

二進数(バイナリコード)とは?

コンピューターの回路にはオフとオンの2つの状態があるため、0と1の2つの数字だけで情報を表します。1桁が1ビットで、8ビットで1バイト、つまり0〜255の数です。文字はASCIIやUTF-8などの文字コードで二進数になり、文字、数字、記号ごとに番号が決まっています。大文字のAは65で、01000001です。

2進数を英語の文字に変換するには?

上部の入力欄に二進数を貼り付けると、その場で英語の文字になります。ビットの間にスペースがあってもなくても、7ビットの区切りでも読み取ります。手で変換するなら、ビットを8個ずつのバイトに分け、1の桁の重みを足して、ASCII表でその数を探します。01001000は72でH、01101001は105でiです。

「hello」を二進数にすると?

小文字のhで始まる「hello」は01101000 01100101 01101100 01101100 01101111です。大文字のHで始まる「Hello」は01001000 01100101 01101100 01101100 01101111で、変わるのは最初のバイトの、重み32のビットだけです。ASCIIとUTF-8では1文字が1バイトなので、5文字で5バイト、40ビットになります。「Hi」は01001000 01101001です。

「I love you」を二進数にすると?

「I love you」は01001001 00100000 01101100 01101111 01110110 01100101 00100000 01111001 01101111 01110101です。8文字と2つのスペースで10バイトになり、スペースはどちらも00100000です。バイトの間を空けずに書くと80ビットが1続きになりますが、80は8で割り切れるので、このツールはそれも読み取ります。上部に自分のメッセージを入力すれば、その二進数がわかります。

1文字は何ビットですか?

ASCIIとUTF-8では、英字、数字、よく使う記号は8ビット(1バイト)です。ASCII自体は7ビットで足りるので、バイトは0で始まります。UTF-8では、éのようなアクセント付きのラテン文字の多くや、ギリシャ・キリル・アラビア文字は16ビット、中国語・日本語・韓国語の文字や、ệのように記号が2つ付くベトナム語の文字はたいてい24ビット、絵文字は32ビットです。UTF-16ではほとんどの文字が16ビットです。

01001000 01101001はどういう意味ですか?

「Hi」という意味です。01001000は64 + 8 = 72で大文字のH、01101001は64 + 32 + 8 + 1 = 105で小文字のiです。上部の入力欄に二進数を貼り付けると、ツールが文字に戻し、各バイトの値を表示して、ちょうど1バイトにならない区切りには印を付けます。

スペースなしの二進数も貼り付けられますか?

はい。0と1の並びは、長さが8で割り切れれば8ビットずつのバイトに、8では割り切れず7で割り切れれば、先頭の0がすべて省かれたものとして7ビットずつに区切ります。どちらでも区切れるときは、読める文字になる区切り方を採用し、もう一方も候補として示します。カンマ、改行、縦棒、0bの接頭辞も読み取ります。

二進数の10101はどういう意味ですか?

数として読むと、10101は16 + 4 + 1 = 21(10進数)です。1バイトの00010101として読むとASCIIの制御文字NAKで、表示される形がないため文字ではありません。逆に普通の10進数として読むと、1万101は二進数で10011101110101です。上部の数値カードには、両方の読み方が表示されます。

二進数が�のような記号に文字化けするのはなぜ?

多くは、バイトが別の文字コードで書かれているか、ビットが欠けているためです。�はそこのバイトが正しいUTF-8でないことを示し、先頭のない続きのバイトや途中で切れた文字など、理由はバイト列に表示されます。古いロシア語のファイルはKOI8-RかWindows-1251が多く、それで正しく読めるときはツールが提案します。各区切りが8ビットかも確認してください。

ASCIIは7ビットですか、8ビットですか?

ASCIIは0〜127の番号を持つ128文字の、7ビットの文字コードです。コンピューターは各文字を8ビットの1バイトに入れるため、ASCIIを二進数で書くと先頭に0が付きます。Aは7ビットで1000001、8ビットで01000001です。残り128通りのバイト値は、Windows-1252などの8ビットのコードページやUTF-8の長い文字に使われます。

65を二進数にすると?

数値の65は二進数で1000001、1バイトで書くと01000001です。64 + 1 = 65だからです。文字コードとしての65は、ASCIIとUTF-8で大文字のAです。2桁の数字として入力した文字列「65」は00110110 00110101です。上部に好きな数を入力すると、2進数・16進数・8進数の形が表示されます。

入力した文字はサーバーに送信されますか?

いいえ。変換はブラウザー内で行われるため、入力や貼り付けをした内容は端末から出ず、どの文字コードや形式を選んでもアップロードされません。アドレスバーに残るのは設定だけで、文字は残りません。ただし「リンクをコピー」で作ったリンクはアドレスに文字を含むので、共有するつもりのときだけ使ってください。

足りないものはありますか?機能や新しいツールを提案する