数字の基礎知識
理科っぽい視点で、身の回りのことを見てみませんか? そんない理科の時間 第648回。
そんない理科の時間をお送りいたしますのは、よしやすと、
かおりです。
よろしくお願いします。
よろしくお願いします。
2026年最初の配信になります。今年もよろしくお願いします。
受けましておめでとうございます。
ということで、9日ぐらいが配信なので、お正月気分はね、もう抜け気味かとは思いますが、
でもさ、まださ、学校、学生さんお休みでしょ?
そうなの?そろそろ?
たぶん。そろそろだけど、まだ、少なくても収録時はまだお休みなんだよね。
ってことは、電車が混んでるけどまだ空いてる予定なわけよ。
わかります。
それが、学生さんが学校が始まって、電車が混んできたら、休み気分終わりかなっていう。
なるほど。
それなりにもう混んでるけどね、今でも十分。
しかも冬になって、みんな気膨れしてるから、乗ってる人数というよりも声優体積が大きい分、たぶん狭く感じてると思われる。
そうですか。今年は12日が成人の日でいいのかな?
そうね。
お休みですぐに3年間になっちゃうんだよね。
18歳だよね。
成人は18歳ですね。
ね、もうなんかよくわかんない。
はい。
なんで18に行ったの?
18歳だったらもう大人と扱っていいんじゃないかってことなんでしょ?
もうね、でもほらなんか数字的にね、めんどくさいなっていうね。
進法の理解
じゃあ、今日は数字の話をしようと思います。
えー!
ということで本音もよろしくお願いします。
よろしくお願いします。
で、今日はコンピューターの中の数字の話をするんですけれども、きっかけはメールで、てらみさんという方からもらったメールの紹介を、かおりさんお願いしてもいいですか?
はい。てらみさんからいただいたメールです。
未信法の勉強をしています。
コンピューターにおける不数の表現を教えてください。
4ビットでは1001イコール受信法のマイナス7。
え?
0111イコール受信法のプラス7とあります。
正の数は理解しました。
と言っていただきました。
ありがとうございます。
ありがとうございます。
これ一個だけ説明してもなんとなくこう全貌が見えないと思うんで、
今日は計算機、コンピューターの中で何が起こっているかみたいな話をしようと思っています。
で、コンピューターの中では全部が0と1なんだよみたいな話を聞いたことがある人も多いんじゃないかと思いますが、
まあ、オンかオフかつですよね。
そうそうそう。
で、その二進数の話をしようと思うんですが、
えっと、二進数ってなんとなくわかります?それともなんとなくわからないです?
オンとオフであることはわかる。
そうか。
もうわかるのはそこだけだね。
普通使っているのは十進数ってやつなんですよね。
1から9まで数字が上がっていって、1、2、3、4、5と数字が増えていって、
9までは単純に上がるんですけど、もう1個超えると1個桁が上がって、
10、1、0って書いて10になるんだよね。
桁が結局上がるっていうことだよね。
そう。使う数字は0から9までの10個ね。
で、みなさんがよく使っているアラビア数字っていうので言うと、
10っていうのは1、0って書くと。
10の10倍は100、その10倍は1000。いいですよね、ここまでは。
もし、もしっていうか、これ、なんで十進法になったかっていうと、
たぶん人が数を数えるときに指を折って、
片手で10まで数えたのか両手かわかんないけど、
指が10本あって十進数になったんじゃないかと思うんですけど、
でもさ、
何?
指が10本あったんだったら、
10までが1つで、11になってから桁が上がるっていうふうにはならなかったの?
そこはね。
十一進数?
そこは、10個でひとまとまりっていうのがあって、
10っていうのが特別扱いされて、
その流れで、10と11と12ってなっていくんじゃないですかね。
要は、10個の分があってプラス余りが1個とか2個とか、
もう1個10の塊ができてっていう数え方だと思います。
もともと数字の表し方よりも、物を数えていくときに
10の塊にしてったっていうのが始まりだと思うんで、
おはじきが5個ありますみたいなことを小学校の教科書でやって数じゃないですか。
そもそも物が何個あるか、それがどれぐらいの塊にすると
把握しやすいかっていうのでできたんじゃないかと思うんで、
数字としての表し方、その後に概念ができたんで、
11までじゃなくて10までで桁上がりがするってなってるんじゃないかと思います。
そう、まさにかおりさんが言ったとおり、
10っていうのを表す1桁の数があっても良さそうだよねっていうのはちょっと合意します。
ただ、10っていうのを表すのが大きい塊の1つっていうふうな概念で表してるものが多いんで、
ローマ数字とかそうでしょ、10になるとバッテンになる、Xになるわけじゃん。
それが大きい塊として。
ローマ数字はどちらかというと五進法に、五進法でもないか。
十進法です。
五問だって特別な数字だもんね。
それはiを9個並べると見にくいんで。
ビットと状態の表現
iは見にくい。
そう、数えなきゃいけないんで。
これね人間の視覚の特性で、4つぐらいまでは1目見ればわかるけど、
5つ、6つ、7つになると1目見ても数がわかんなくて数えなきゃいけなくなるっていう特性があるんで、
それで5までのところで工夫したんじゃないかと思っています。
なんか昔は3までは数えられるけど4以上はいっぱいで1つの数えなかった、数えられなかったって話聞いたことあるけどね。
それはどういうことかよくわかってないんですけど、どういうこと?
だから、何進法何進法の話じゃなくて、そもそも数がまだ概念としてなくて、
1、2、3、いっぱいっていう数のカウント方法しかなかった?
それはどこにも残ってないんじゃないの?
どこ残ってるの?
あ、というか、なんで昔はそうだったっていうのがわかったんだろうなっていう。
3までしか書いてなかったんじゃない?
だからそれは残ってないんじゃないのっていう。
ほら、昔は数を数えなかった、数えたくないわけですよ。
たくさんでいいじゃん的な。
だから、なんで昔はたくさんって言ってたかっていうのは文字として残ってないんじゃないのっていう。
わからへんは私にはよくわからないし。
で、話を戻すと。
はい、戻しました。
片手、もし指が4本だったら、哺乳類でもね、1本分ちょっと体格が小さくなっちゃって、実質4本な動物結構いますよね。
うん。そうね。
なんだっけ、前足だけ4本で後ろ足が5本っていうのもいるし。
骨はあっても指にはまってない感じのやつとかね。
で、もし人間がそんな感じだったら8神数になってたかもしれない。
両手合わせて8本だからね。
うん。
使う数字は0から7の8つだよね。
さっきのところから累推すると。
で、8つになると1塊。
で、それが8と1とか8と2、8と3っていう風になってて。
8と7の次は8の塊が2つになるんだよね。
うん。
そうすると8の塊が2つの後、余りが1とかになっていって。
で、8の塊が7つあって、その後、波数が7つあって、もう1個足すと8の塊が8つになる。
その時にもう1回大きい塊にするっていう風にやるのが8神数ね。
うんうんうん。
なんとなくわかる?
うん。
なので、0、1、2、3、4、5、6、7、次は1、0になるのね。
うんうん。
1、1、1、2、1、3、1、4、1、5、1、6、1、7、2、0になるって感じ。
うん。
だから7、7の後に1足すと1、0、0になるのね。
うん。
はい。で、この数字はさっき10から8にしたけど、10よりも大きくてもいいわけですよ、塊が。
うん。
例えば1ダースっていうのは12個じゃないですか。
うん。
12ダースは1グロスって言うんですけど、つまり12個を1塊にするっていうのができますよと。
だいたい仕組みわかってきた?
うん。なんとなくその、結局1つのその大きな塊が1個あったらもう2桁に入るわけね。
そうそうそうそうそうそう。
2桁としてカウントしていくわけね。
はい。でですよ、ちっちゃい方に行くと、1番ちっちゃいと2神数なわけね。
うん。
で、この数字は0と1の2つ。1の次にもう1個足すとどうなるかっていうとくり上がるわけ。だから1、0になります。
それにもう1個足すと1、1になります。もう1個足すと1、0、0になります。わかります?
はい。
次が1、0、1。さて1、0、1は10神数でいくといくつでしょうか。
もう1回言って。1、0、1。
1、そう1、0、1。
5。
あたり。素晴らしい。
5。
つまり、1は1と同じ。1、0は2と同じね。1、0、0は4と同じ。1、0、0、0は8と同じ。1、0、0、0は16。ということで、これ2神数の表し方。
これって、あの、なんだ?覚えないとだめ?
どういうこと?
丸暗記的な感じ?
2神数を10神数に直すのは、暗算でできなくてもいいです。ただ、2、4、8、16ぐらいまでは、だいたい覚えてると、足して足してってやっていくことになります。
もう1回復習ね。
0か1かを表す単位を1ビットというふうに言うことにしましょう。
そうすると、1ビットでは0か1が表せます。2ビット、2つあったら、0、0、0、1、1、0、1、1と4種類の状態が表せます。つまり、数字では0、1、2、3て数えられるわけね。4種類。
で、4ビットになると16種類。10神数でいくと0から15までと対応できます。ここまではなんとなくわかってもらえると思うんですよ。
3ビットってことは、0、0、0、0ってこと?
0、0、0、0から1、1、1、1まで。
それ、3ビットっていうのはやらないわけ?
別に3ビットやってもいいですけど、3ビットは8種類ね。なんでかっていうと、この先8ビットにまでいきたいんで、ちょっと飛ばしてます。
飛ばしただけね。別に3が…
ないわけじゃないです。
3はないとか、そういうわけではないですね。
3桁もあります。3桁だったら3ビット、0から7までの8、8つの状態が表せて、一般的には0から7に対応できると。
で、8ビット、つまり1か0かの組が8つあったら、0、0、0、0、0、0、0から1、1、1、1、1、1、1、1っていうところまでの数字が表せますよと。
これは0から255になりますよね。
16進法の基礎
ありますよねって言われても、へーっとしか言えないけどね。
そうなんです。これとっても大事なんですよ。
で、オープニングの最後は16進法ってなります。いいですか?
今までもう習ってきたから、16進法は0から始まって、1桁で表せるのは?
0から15?
まで、そうそうそうそう。だから、使う…
16になったら1個上がるのね。
使える…使える…使う数字は、16個なきゃいけないのね。
0から15までが1桁で表せて、16になったら1個繰り上がる。
そうすると、0から9まで同じなんだけど、
10、11、12、13、14、15を表すのが大変というか、他の字が必要じゃないですか。
これを何で表すかっていうので、とりあえずABCDEFで表しちゃえっていう風にすると、
0からFまでが数字として使えます。
0から9プラスABCDEFね。
そう。ということで、16進数は1桁で0からFまでの16種類の状態を表せます。
ってことは、0からFで15。
10って書いてあったら、10進数でいくと16を表します。いいよね?
20って書いてあったら、10進数でいくと32を表します。
16の塊が2つあるわけだから。
っていうので、2桁、00からFFまでを使うと、0から255までが表せます。
16進数で2桁ね、使うと0から255までを表せます。
2進数でいくと、8桁分と同じ。
ということで、難進数っていう話はここで終わりで、次に本編でコンピューターの中の話をしようと思っています。
コンピューターの計算能力
これ覚えてないとダメ?
あ、なんとなく雰囲気がわかれば大丈夫です。
雰囲気、雰囲気。
というわけで、ここまででつまづいた方はもう一回頭から聞いてみてください。
はい。
これ、ポッドキャストというか、しゃべってうまく伝わるのかな?
まあ、なんとかなるでしょう。
ということで、本編に行ってみようと思います。
はい、よろしくお願いします。
さて、なんだか2進数とか16進数とかやりましたが、コンピューターの中では情報はデジタル情報を扱えます。
はい。
0と1みたいなやつね。
で、コンピューターを使う人間とか、あと目的を考えると、なんか0と1が並んでるだけだとあんまり意味がないわけですよ。
だから、数字を意味として捉えるってことをやらなきゃいけないわけね。
さっきお話ししたときには、8ビットあれば0から255の数字を扱うことができますという話をしました。
はい。
そうすると、足し算や引き算っていうのが、1と1を足せってやると2とかっていうので、0から255までの数字の足し算とか引き算は、プログラムにね、足せとか引けとか書いてあげるとできます。
で、みなさんがたまに使う電卓あるじゃないですか。計算機ね、ちっちゃい。
あれって255なんかよりも大きい数字が扱えますよね。
255までだったら小学生のお小遣いでも足りないんじゃないかっていうぐらいね。
で、大きい数字を扱うにはどうしましょう。
扱いってどうなんだろう。
255円ってことはないでしょ。何日か経てば。
しかも正月でお年玉もあったからね。
そこで8ビット、つまり255までのやつを2つ組み合わせれば桁数が多くなるから、大きな数が扱えますよね。
今まで3桁だったら、たとえば10進数で3桁だったら999までしか扱えないけど、
桁を6桁にしてあげれば、1、10、100、1000、100,000、99,999までの数が扱えますと。
かっこいいですか。
たとえば8ビットを2つ組み合わせて桁数を多くしますと。
8ビットと8ビットで16ビット。
だから、0000っていうのが16個並ぶやつから1が16個並ぶやつまでの全部で65,536種類。
0から65,535までの数が表せます。
そんなことがコンピューターの中で行われています。
昔のコンピューターは8ビットっていって、いっぺんに計算できるのが0から255までの数字しか計算できないから、
大きい桁を計算するときには上半分と下半分に分けてこっちを計算して、
繰り上がりがあったり繰り下がりがあったりみたいなやつをプログラムを書かなきゃいけなかったんだけど、
16ビットコンピューターはいっぺんに0から65,535までの数が扱えます。
昔のコンピューターのプログラムを書く人は、これ数字がユーザーが入力した数字とかを扱うわけじゃないですか。
そのときに。
いわゆる受信法の数字ってことね。
そういうのがあったときにそれを計算して、途中の計算でこれが65,535とか、
例えばあるときだったら255よりも大きくなっちゃうと正しい計算ができないから、
その辺をオーバーフローとかアンダーフローって言うんですけど、そういうことはしないように考えながらプログラムを組まなきゃいけなかったんですよ。
っていう時代がありまして、そんなこともあるんですが、
何回か前に数の話したと思うのね、0の階に。
今、0から255までが扱えるって話をしましたよね。
16ビットあれば、0から65,535。
でもここにマイナスの数ないじゃないですか。
そうね、マイナスはないね。
マイナスの数も表したいなと。
マイナスってその何かの前にマイナスって付けるだけじゃないってこと?
そうそう。そこは表し方の問題なんで、
例えば、プラスかマイナスかの符号っていうのを1つ意味付けをさせる、どっかのビットに。
で、他のものを数字にして、符号プラス数字。
ここが符号が0だったらプラス、符号が1だったらマイナスとかにして表すっていうやり方もあるよね。
そうなんですよ。だから、数字をどう捉えるかっていう話があって、
符号プラス絶対値っていう表し方でやって、
プラスとマイナスの要は、符号のところが0じゃなくて1だったときには、
足し算をしなさいっていうときには工夫をして引き算にして計算をするとか、
ある数からある数引いてマイナスになっちゃったら、
それを符号を変えた数にしてメモリーに置いとくとかっていう風にしなきゃいけないわけ。
っていうのがある中で、実は今コンピューターの中で一番多く使われているのは、
符号と絶対値っていう方法ではなくて、
0は0ね、1は0001、2は0010とかっていうのはさっきやったじゃないですか、二進数で。
それでマイナス1を0から1を引くっていうのをやると、
どうなるかっていうと、アンダーフローって言って0を超えちゃいましたよってエラーが出つつも、
数字は1111になるわけ。
これって本当は4ビットだと1111は数字で15のはずなんですけど、
この15は15じゃなくてマイナス1にしちゃいましょうっていう風に扱おうっていう約束をすると、
何が起こるかっていうと、1111はマイナス1でそれに1を足してあげると、
繰り上がり繰り上がり繰り上がり繰り上がりがあって0000になるんですよ。
オーバーフローが起こって。
これを使うと、4ビットだったらプラス7からマイナス8までの数が表せる、15種類で。
ある意味、表せる範囲を半分だけずらしてマイナス側に振って、
一番上に1になっていたらそれはマイナスで、0から引き算したところにありますよっていう風なやり方をとっていて、
これが今コンピューターで一番使われている、これ覚えなくてもいいんですけど、
用語的には2の歩数表現って言うんですよ。
情報の意味付け
2の?
2の歩数表現っていうのがありまして、歩数は補う数って書くんですけど、
何にもともあれ、1の歩数表現っていうのがありまして、
1の歩数表現っていうのはマイナスのやつを全部、0を1、1を0に反対にするのを1の歩数表現って言って、
そのタイプの時は0は0だけどマイナス1は1、1、1、0っていう、
1を表す0と1を反転したやつにするっていうことが1の歩数表現って言うんですけど、
これ覚えるとごっちゃになるんでちょっと置いておいて、そういう表現もある。
だから2の歩数表現っていうのが一番使われていて、
絶対値プラス符号っていうやり方もできるし、1の歩数表現っていうのでも計算できるんですけど、
計算機の中ではさっき言った0から1引くと全部1になっちゃうって言って、
そこで表現する。
つまり4ビットだったら0から15を7つずらすのか、8つずらすのか、
8つずらしてマイナス8からプラス7までの範囲を表すっていうふうにしますよってやると、
いろんなとこで楽ちんなんでそうしましょうっていうふうに表すというのができますと。
そこまでいいですか?
急に難しくなった?
でね、他にも小数の表し方とか、不動小数点の表し方とかあるんですよ。
なんですけど、ここではそのお話をしません。
で、今日言いたいのは、コンピューターの中は0と1しか扱えないけど、
今私たちはコンピューターを0と1しか扱えない機械だと思ってないじゃないですか。
皆さんが聞いているこのポッドキャストもコンピューターが0と1の計算でなんだかんだ言って、
私の声、かおりさんの声をイヤホンとかスピーカーから出すっていうのをやってますよね。
なので、今のコンピューターの中ではいろんなものをどんな意味があるかというのを割り付けて、
0と1で表現するっていうふうにして、
このデータは何何用のどのデータだから何桁分が有効で、
どうやって計算するとどんな意味があるかっていうのを考えながら計算をするっていうことをやっています。
ただの計算だけじゃなくて、その前に意味付けというか。
そうそう。コンピューターはただの計算をしているけれども、
使う方が意味付けをして外の世界と繋いであげるっていうのをやるわけ。
例えば画像っていうのがあると点の集まりじゃないですか。
何ドットかける何ドットっていうよね。
アイコンは32ドットかける32ドットでいいみたいなの。点々の集まりです。
点を5番の目に並べて、それぞれの点の明るさを数字で表せば絵が描けますよねっていうのが絵を表すっていうのが基本です。
これはこのサイズの絵ですよっていうデータが並んでいて、
コンピューターが計算をしたやつが何かの電気回路につながって、
なんだかんだでディスプレイに送られるとその並びの通りに明るさが表示されて、
人間には絵のように見えるわけ。
白黒白黒っていうのを並べていれば一松模様に見えるかもしれないし。
例えば明るさを表すのにどのくらいの情報を使うか。
画像があって点々が5番の目のように並んでいて、
どっかは白どっかは黒ってやるんだったら1画素。
一つの点について1ビットあればいいわけよね。
画像の色表現
だからQRコードみたいなやつだったらそれでいいんだけど、
例えばグラデーションを表したいといったら、
それぞれの点に明るさが微妙に違う。
白でも黒でもないグレーっていうのを表さなきゃいけないじゃないですか。
それが4ビット使えば明るさが0、
真っ黒から明るさが15までの16段階の明るさが
そこに保存できるとか表現できることになります。
みたいな感じで画像っていうのは
一つの画素にどれくらいの情報をくっつけて、
それは白なのか黒なのかまたはグレーなのかみたいなことを
割り付けて処理をするとそれが画像として見えたりしますし、
あっちの画像とこっちの画像を切ったハッタするとか、
重ねて透過させて向こうの絵が見えるようにするとかっていうのは
足し算したり引き算したり掛け算したりして、
新しい画像の値を、画像に対する色とか明るさの値を計算するっていうのであれば
新しい画像ができるっていう風になっています。
さっき言ったのは白か黒かみたいな話しましたけど、
今、コンピューターでは赤と緑と青の明るさで色を表現するっていうのが一般的です。
RGBね。
人間の目の感じ方が赤いのに感じる、緑に感じる、青の光に感じるっていうのがあるんで、
それに合わせてやると効率よく色が表せるんじゃないかということで、
赤と緑と青、それぞれの明るさを表すのに、
さっき言ったどのくらいの情報量を割り当てるかっていうのがあって、
例えば赤が8ビット、256段階。
マイナスはなくていいわけね。
0が一番暗いから。
緑も青も256段階っていうので表すと、
全部で8ビットが3個分、24ビットを使って、
1つの点の色を指定するということになります。
ウェブサイトとか作った人だったら分かるかもしれませんけど、
色が6桁ぐらいの数字で表せたりするときがあるんですよ。
あるね。
Fのなんとかなんとかとかそういう数字で。
色をパラメータで表示した後に、
どっかにRがいくつ、Gがいくつって書いてあるときと、
この色はなんていう色っていうのを、
そういう記号っていうのをやってるのが一緒に書いてあることがあるね。
そう。だから8ビットは16進数で2桁なんで、
FFは255と同じで、FF0000は真っ赤かとかっていうのと結びつくわけ。
ゆっくり聞くと分かるはずですけど。
他にもね、1つの点の情報、さっきは赤と緑と青、
それぞれ8ビット使って24ビット使いましょうってあったんだけど、
1つの点の情報を明るさと色っていう2つの数字を使って表す方法とかもあったりする。
それはね、どういう定義にするかで、
この数字の並びはこんな絵に違いないというか、
こんな絵に変換できるっていう約束事を作る。
つまり、コンピューターの中は1と0で表した数字を足したり引いたり掛けたり割ったりっていうのは、
コンピューターの中でできるけれども、
実際それに意味性を持たせるのは、
人間が作ったプログラムでこの絵を一日ちょっとずつ暗くしたいっていうのがあれば、
さっきのRGBの値の数字を全部について引き算すればいいとかね。
もし1枚の画像が1つの点ごとに明るさっていうのと色っていう数字が2個で表してあったら、
その画像を全体暗くするんだったら、
明るさっていう数字から一時に引き算すれば暗くなるとかっていうのができますっていうのが、
その数字と意味の対応性っていうことになります。
音声とテキストの処理
今私たちが喋っている音、音は画像でいうと点を数字で表すの代わりにですね、
空気の振動、つまり圧力が1秒間に何十回も変わるわけじゃないですか、音がするってことは。
これをだいたい音圧を1秒間に4万回ぐらい測って、それを数字にして4万分の1秒目の時にはこの音圧、
4万分の2秒目はこの音圧、3、4、5、6っていうのをずっと数字の羅列を並べて、
これは音の波形の数字ですよっていうふうにやって送ってあげると、
受け取った方はこれは音が1つの点あたり8ビットで書いてあって、
1秒間に4万回分の点があるんだなっていうのがわかれば、同じ音が再現できるってことね。
で、文字、テキストですけれども、文字は画面に出ているときには画像と同じで、
ここが黒くてここが白いとなんとかっていう字に見えるぞっていう、ああいうように見えるぞって話なんだけど、
文字コードというのは定義されていて、文字に名前がついています。
名前じゃない、番号がついています。
つまりAっていうのは、さっきのAでいくと数字のいくつというのが決まっていて、
みんなでこれを使いましょうっていえば、数字を送り合えばテキストが送り合えるということができます。
私が習い始めたというかコンピューターを使い始めたときには、
さっきも言ったとおりコンピューターが扱える桁数っていうのはすごく少なかったんで、
文字を表すのは7ビットですよ、または8ビットですよというふうになっていました。
8ビットで256種類、7ビットだと128種類の情報が表せますよと。
そうすると英語の大文字が26個でしょ、英語の小文字が26個でしょ、合わせて52、数字が10個でしょ、これで62個でしょ。
記号とかもなんだかんだ20個近くあるわけじゃん。
そうすると80個ぐらいは識別がしたいから、7ビットっていう桁数を割り当てると128種類の識別ができるから、
じゃあ文字を表すのは7ビットでいいよねみたいな。
コンピューターは2の何乗っていうのが好きだから8ビットを使って文字を表しましょうみたいなことが行われていました。
本当は数字的には7ビットでよかったんだけど、その7って数字よりかは8の方がコンピューター上扱いやすいってことね。
そう、ただ通信するときには1と0順番に送っていくんで、8ビット分送ると余分に時間がかかっちゃうんで、通信するときには7ビットにしましょうとかっていうのもやられたりとか。
つまり送る側と受け取る側で何が何ビット分でどんな数字で、これは何と対応してるかっていうのを考えながらやり取りをしなきゃいけないわけ。
で、コンピューターは日本語が使えないっていう時代があったわけです。
ユニコードの導入
で、128個だとアルファベットと数字と記号しか使えないけど、256になったら半分余るわけじゃない、あと128個分。
そこにカタカナ入れちゃえっていうのが昔の半角カタカナっていうのがそこに割り当てられていたとかっていうのがあって、いろいろあるんですけど、ちょっとそれ置いておいて。
あ、そうなの。半角カタカナの方が先にパソコンに入ったの。
そうね、あとパソコンによっては画面に絵を描きたいから、そこに経線記号みたいなね、10とか1とかマイナスみたいなやつを入れて並べて描くとマス目が描けるとかね。
はいはいはいはい、あったね。
そういうのを割り当てるものあったけど、それはコンピューターごとにというかメーカーごとに全然違うのを使っていて、同じテキストを送ってもないんですよ。
あ、ドコモとなんとかみたいな絵文字が全然違うのが届いたみたいな、そういうやつね。
そうそうそうそう。
それぞれの会社が、自分たちは例えば絵に描く人に特化したやつをって言って、そういうのを入れるし、自分たちは文字を描くのに特化したって言ったらそういうのに入れるしっていう風に適宜やってたわけか。
でね、日本語はひらがな、カタカナ、漢字があるから、やっぱり8ビットでは無理だから、16ビット分使って1つの文字を表せば65,535文字が表せると。
っていうので、こういう書き方をしたら漢字として扱おうっていうのを、数字と漢字の対応表っていうのを作るわけ。
でそれをテキストに入れるときには、みんな漢字だと思ってやろうねっていうのと、いやいや漢字じゃないのと漢字が混じってる文章もあるんだから、そのときにはここから漢字モードにするぞっていうのをパターンが入ってきたらその後は漢字に。
宣言しなきゃいけないわけね。
みたいなパターン。
次からの数字というか記号というか、オンオフの羅列は漢字を表すよ、ここからはひらがなを表すよっていうのを宣言した上での指示になっていくわけね。
それがね、だから方式が2種類あって、ジス方式とエスジス方式っていうのがあって、間違えると文字化消しちゃうっていうのが起きたりするわけ。
で、そんなのは嫌だって言って、世界中の文字が扱えるように作ろうって言って、ユニコードっていうのが考案されて、8ビット、16ビット、32ビットみたいなやつを選びつつ、この数字だったらこの漢字と対応するみたいなことを定義したのが今扱われてるんで、そんなに変な文字分けはしないようになりましたが。
いつぐらいまで、それが新しいやつができたのはいつぐらいなわけ?
ユニコードはでも2000年ぐらいからはユニコード対応が増えてきたんじゃないかな。
でも逆を言えばそれまでは独自のものが普通にはびこっていたから文字分けがよく起きていたわけね。
そう、例えばメールってさ、世界中でやりとりがされたわけよ。1970年代、80年代から。
で、アルファベットのメールだったら誰でも問題ないんだけど、日本語が入った途端、誰かが文字コードを間違って送ると、おめえのメール読めねえよ、とか。
テキストファイルがファイルになってるんだけど、開けたると変なことになるとか。
で、だいたい合ってるんだけど、どっかの文字だけ奇種依存文字とか、っていうのもあったりしたって時代があって。
で、ユニコードになったら同じ数字というか、同じ番号と漢字が対応できるっていう風になりましたよと。
でね、さっきも言った通り、同じ漢字っていうのは何かっていうと、何でもいいんですけど、ひらがなのアでもいいし、安いっていうアンっていう字でもいいんですけど、
これは何番だよっていうのが定義できましたよと。
一方で、安全のアンとかを表す絵としての情報っていうのは、ゴシック体とか民調体とか、そういうので別に用意しておくと、
安全って書くやつを、あるフォントを使えば、同じ文字コードで民調体で安全って書けて、
違うフォントを使えばゴシック体で安全って書ける世界がやってきました。
めでたしめでたし。
めでたしめでたし。
で、その中に絵文字も入ったんですよ。
でね、さっきかおりさんが言った通り、ドコモの絵文字のなんとかはAUだと使えないとかってあったわけじゃないですか。
で、ユニコードができたときに、絵文字も統一しようぜって言って、絵文字も番号がみんなついた。
そうすると何が起こったかっていうと、海外の人も絵文字が使えるようになっちゃったわけ。
これで急に海外に絵文字が流行るんですけど。
えっと、ちょっと待って、ユニコードに何かを割り振ってるっていうのは、世界標準なわけだよね。
絵文字とユニコードの問題
ユニコードのなんとか委員会っていうのがあって、そこでこれに決めますっていうのがあって、それをみんなで使いましょう。
あそこに絵文字入れたいって日本が言って、いいよってあっさりOKでたわけね。
まあ、提案があったのと、それが正式に出る前になし崩し的に使い始めた人たちもいるわけですけど。
で、iPhoneが日本語対応するときにソフトバンクが絵文字入れようぜって言って、iPhoneが絵文字対応したっていうのが一つ大きい原因なんですけど。
で、絵文字はちっちゃい問題が起こりまして、さっきね、安全の案っていう漢字は民調体とかゴシック体があるって話したじゃないですか。
っていうことは、絵文字もニコニコ顔っていう絵文字は、こっちのニコニコ顔とあっちのニコニコ顔って両方ともニコニコ顔だったら同じコードでいいよねってなるわけですよね。
そうすると、ちょっとした絵の違いで、定義としてはなんとかなんだけど、見た目が違うふうに読まれることがあったりするわけ。
もともとね、絵文字日本がベースを作ったんで、幼稚園の名札のバッジ、わかります?
チューリップの形で真ん中が白く四角いの抜けてるやつ。
あれを赤いチューリップで描くことが多くて、あれが炎上している炎に見えるっていう使い方をしたりとか。
でも、本当は幼稚園の名前バッジなんだから、こっちのコンピューターでは黄色でもいいわけじゃん。
こっちのコンピューターでは緑でもいいわけじゃん。赤いのが流行ったから炎に見えるわけで、みたいなやつがあったりして。
つまり、ユニコードは意味というか、これはどんな文字を表しているかっていうのを定義するけど、画像についてはそれぞれが実装してもいいよ。
基本的にはこんなのが事例としてあるよっていうのは出るんだけどね。空っぽだと仕方がないんで。
ということで、統一はできたけど、まだまだちっちゃいトラブルがあったり、あと、拳銃のところが多分iOSだと思うんだけど、
拳銃は物騒だから、同じコードに水鉄砲、緑色の水鉄砲を割り当てちゃえとかって言って、今まで拳銃が描かれているのは水鉄砲に変わっちゃったりするわけですよ。
あともう一個、これは我々日本人にちょっと問題なのは、中国の漢体とか反体とかってあるの知ってます?
デジタルメディアの進化
漢体反体?
あ、そうそう。日本の漢字とさ、中国の本土で使っている漢字と、台湾とかで使っている漢字って微妙に違って、略し方が違うんですよ。
略?略?略し方が違う。
そうすると、漢字としては同じなんだけど、中国用のフォントを使っちゃうと、日本人が見ると変な略し方してあるなみたいな字に見えちゃう。
最近なんか結構海外で作られたんだろうなっていう商品のサイトとかで見ると、日本語の糸片の下半分って縦に横横なのが三つチョンチョンチョンになっているとか、
そう。
ああ、なるほど。
とかっていうので、一応ね、どの文字セットを使ってこのコードでっていうのが指定はできるんだけど、それがないときには代わりにこっちで代用していいよっていうルールとかもあって、
そうすると文字セットが少なくても表せるものが増えるからいいんだけど、世界中には中国語の文字セットを優先して表示するっていう機会が多いんで、
AmazonプライムとかNetflixの字幕とか入れると、中国っぽい省略した字が出ることが多かったりして、みたいなことが起こったりします。
つまり話をぐぐぐぐっと戻すと、コンピューターの中ではいろんな数字がいろんな意味を持って扱われているけれども、
それをどう表現するかっていうところでもう一回変換があって、っていうことが起こったりしているよということです。
全部の情報が0か1かで表せるってことは、ハードディスクとかSSDとかに記録も動画だろうと静止画だろうと音声だろうと、
手っ取り早く何でも記録できるわけ。すごく便利で、今の人にはわかんないかもしれないけど、
私が小さい頃は音はカセットテープとレコードでしか記録再生ができなかったわけよ。
テレビ放送は電波に乗ってくるか、VHSとかベータのテープに入れなきゃいけなかった。
なんだけど、今は全部0と1の組み合わせなんで、音楽もビデオも情報も全部ネット経由で入手できるようになっちゃったわけ。
昔はテレビ画面といえば、電波にある方法で乗っけて、それをテレビ受像機と称する機械で受信して、電波の強さとか電波の周波数とかを絵に変換して表示するっていうのが行われていて、
それをテレビジョンって言ったんですけど、動画だってね、1枚の絵をデジタルにして、次の絵をデジタルにして順番に送れば送れちゃうわけじゃないですか。
もちろん送る効率がいいようにいろんな工夫はしてるけど、デジタル時代は何でもかんでも同じ線を使って0と1を送ればいいし、
記録メディアについても0と1がある程度早く確実に記録再生ができるだけでいいっていう風になったわけ。
私たちが小さい頃は、俺メタルテープ使ってんだよなみたいな。
メディアが違うと音質が違ったわけですよ。
正直よくわかんなかったけど、やっぱ違ってはいたのね。
違いました違いました。
全然わかんないで単にメタルテープとかいう風に思ってたけど、違ったんだ。
違うんですよ。
違う人が使えば。
それがデジタルになると別にUSBメモリーでもコンピューターの内蔵ハードディスクでも0と1の並びが同じだったら
同じクオリティーのものが保存できたり転送できたりするっていうことが起こっています。
ということで、デジタル化ってそういうことなんだよねっていうのが今回体感していただけるといいなと思っていて。
プログラムの変化
もうちょっと言うと、コンピュータープログラムもデジタルのデータで書かれているわけですよ。
コンピュータープログラムはメモリーのどこどこから数字を持ってきて、他のところから持ってきたのに足し算して、
違うところに書き込むみたいなことが順番に命令として書いてあるんだけど、それもデジタルデータで書かれているわけ。
そうね。
私が若い頃は、この数字、ここに入っている数字がどんな意味を持って、これからどう計算されて、
またはここのものはデータとして扱われて、ここのものはコンピュータを操るためのコマンドとして扱われてとかっていうのを全部考えて、
人間がCPU、コンピュータの中心で計算するやつね、そいつの積もりになってこの順番にこのデータを読み込ませてあげると、
こっちに保存してあるこのデータを変換して計算して、計算結果をここに書き込むみたいなやつをコンピュータの気持ちになってプログラムするっていうのが必要だったんですよ。
なんだけど、今はこんなことがやりたいっていうのをだいたいね、アルファベットとかが多いんですけど書いてあげると、
それをコンピュータ君がコンピュータがわかるコマンドというか命令の仕方はこれだよっていうのに翻訳してくれて、
それをプログラムにしてそれを実行するっていうのをコンピュータがやってくれるようになったわけ。
という感じでですね、コンピュータの最も最も一番深いところは0と1の足し算とかそれを何回もいっぺんにやって掛け算にするとか、
標準的な数字を表すものについてはハードウェアでガチャって計算するとかができるんだけど、
それを私たち人間の役に立てようと思うとプログラムっていうのが必要で、
これは絵のデータで誰々に送るには大きいのをデータを圧縮したいから、
お隣と似たような絵だったら色だったらそこは省略してとかっていうのをコンピュータが考えてデータをちっちゃくして、
これはどういう風な方法でちっちゃくしましたよってラベルをくっつけて送ると転送は早くて、
見る方は見る方でこれは何とかっていう方式で圧縮されてるからこの数字はこういう風に解釈して、
実際の絵はこうなんだなっていうのを再構築して出すとかっていうのが行われるとかっていうのがあっちこっちで行われて、
皆さんはコンピューターと意識しなくてテレビとかパソコンで配信動画が見られたりスマホでゲームができたりするという風になっています。
ということで、今日はね、もともとメールでは4ビットでは1001はマイナス7なぜという話をしました。
4ビットでは16種類の数字が表せて、0から16に使ってもいいけど、マイナス8から7の16種類に使うこともできて、
そういう使い方だと0は0だけど1110111は7で1001はマイナス7ですよみたいなことをやって、
つまり計算しやすかったり意味付けがしやすいという方法で計算をしていますが、
今やこんなちまちました計算は人間はあまり気を使わずにこのデータをTwitterに上げるってやると、
あちこちでいろんなプログラムが連携して動いて、この映像データはでかすぎるんでTwitterに上げるときは小さくして、
というか生引きしなきゃいけなくてとかっていうのをやってちっちゃくしたりして、
テキストは日本語で書かれているからユニコードのこことここを使ってこんな表示をしてとかっていうのがコンピューターの中で行われていますよというのが、
なんとなく雰囲気でもわかってくれるといいんじゃないかと思っております。
なるほどね、なんとなくゼロから絶対スタートっていうふうに思ってたけどね、二進法に限らず何進法すべてがね。
定義の仕方、定義というか宣言というのかなイメージとしては。
こういうふうに使うよっていう一番初めにやる仕方によってはマイナスからも表現することもできるわけですね。
あとはそれを文字として扱うんだったら、16進でいくつっていうのは文字のいくつに対応しますよとかっていう対応表とかもあったりするわけですよ。
しかもそれが世界標準というものが出てきたっていうのは、だからこそiPhoneとかにも入ってるんだろうし、
時々ネットでね海外では日本ではこう使ってるものが海外ではこうだったとか、あとちょっと問題というかなったのが、
当然日本でスタートしたから日本人向けの絵文字ばっかだったとか、
世界の人が使うようになったから、例えばその人の絵が人種を意識するようになって、
カラフルな、同じ怒ってる絵ニコちゃんマークであったとしても肌の絵によって色によって何種類かできたとか、
なんか日本にいたら意識しなかったことが増えたなっていう気はする。
だから海外の人は鬼とか天狗がたくさんあるとかどう思ってるんだろうなと思って。
しかも大きな絵ならともかく小さな絵だから、これが何を意味してるのかが分かりづらいしね。
緑色の顔で気持ちが悪そうなやつは吐き気を催してるのかみたいな話ですよ。
私が見たときはなんか青リンゴの顔みたいで可愛いと思って、
吉安さんにこれ可愛いって言ったら、これどういう意味だろうと思って調べたら吐き気を催してる顔とか言って、
そうなんですよ。
可愛い顔だったのに。
あとやけにエトの動物が揃ってるとかね。
あーなるほどね。
あとなぜか見ざる言わざる聞かざるがいるとかね。
ほんと?
コンピューターと二進数の理解
言います。絵文字。
見ざる。ほんとだ。
に対するんですよ。とかっていうのもありまして、
何をデジタルデータの何に割り当てるかみたいな話をみんなで話し合わないといけないし、
それがコンピューターの中では扱われているという風なのが今日の全体のお話でしたということで、
今日はこの辺にしたいと思います。
で、オープニングで話した二進法とか四進法はやってないか、
二進法とか十六進法みたいなやつは分かりにくかったかもしれませんけれども、
これ知ってるとなかなか役に立つので、
ぜひ二進法とか身につけていただければいいんじゃないかと思っています。
ということで、今日はこの辺にしたいと思います。
この番組、そんないりかの時間では皆様からのメッセージを募集しております。
メールの宛先は、
メールの宛先は、
また私たちのウェブサイト、
のウェブサイトからもメッセージのフォームがありますので、
そちらからもメッセージを送りいただけます。
そんないりかの時間に送っていただく場合には、
そんない.comのそんないりかの時間のアイコンをクリックしていただくと番組の一覧が出てきますので、
右側にメッセージフォームがありますので、そちらをご利用ください。
番組の感想だけでなく、こんなところに行ったよとか、
こんなことをしてますよとか、こんな風に聞いてますよというようなことを送っていただくと嬉しいですし、
褒めた感じのメッセージを送っていただくと喜びます。
喜びます。とてつもなく喜びます。
アップルポッドキャストのコメントとかもたまにちょこちょこちょこって増えて、また音沙汰なしみたいになっているので、
そういうところももしよろしければコメントとかしてみてください。
あとですね、私たちのそんないプロジェクトではこの番組のほか、
そんなことない視聴やそんないざかてんという番組も配信しておりますので、ぜひ聞いてみてください。
あとですね、audiobook.jpというところで有料配信もしております。
そちらでは番組の推しにおまけ音声をくっつけて配信をしておりますので、もしよければそちらも聞いてください。
聞かれた時間に応じて我々に報酬が入るということになっておりまして、
そちらの報酬で国立科学博物館の特別展のチケットプレゼントとかも賄っておりますので、
有料版も聞いてくれると嬉しいです。
ということで、そんないりかの時間、第648回お送りいたしましたのは、
よしやすと、
かおりでした。
それでは皆さん、次回の配信でまたお会いしましょう。さようなら。
ごきげんよう。