Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ASCIIコードの小話
Search
Osumi, Yusuke
April 17, 2021
Technology
0
360
ASCIIコードの小話
「新しいLinuxの教科書」を読む会 オンライン #12 での発表資料です。
https://linuxbook.connpass.com/event/208181/
Osumi, Yusuke
April 17, 2021
Tweet
Share
More Decks by Osumi, Yusuke
See All by Osumi, Yusuke
本の紹介の補足
ozuma
1
320
gitサービス3兄弟
ozuma
0
330
簡体字は楽
ozuma
0
390
ソフトウェアは固定資産
ozuma
0
350
今いるディレクトリを消すとどうなる
ozuma
1
280
名前付きパイプ FIFO
ozuma
0
410
文章、作文技法 リモートワーク
ozuma
1
780
CentOSの今後のリリース(簡易説明)
ozuma
0
330
AndroidでもLinux動いてるよ
ozuma
0
350
Other Decks in Technology
See All in Technology
あの日俺達が夢見たサーバレスアーキテクチャ/the-serverless-architecture-we-dreamed-of
tomoki10
0
460
DevOps視点でAWS re:invent2024の新サービス・アプデを振り返ってみた
oshanqq
0
180
日本版とグローバル版のモバイルアプリ統合の開発の裏側と今後の展望
miichan
1
130
Amazon Kendra GenAI Index 登場でどう変わる? 評価から学ぶ最適なRAG構成
naoki_0531
0
110
ブラックフライデーで購入したPixel9で、Gemini Nanoを動かしてみた
marchin1989
1
540
開発生産性向上! 育成を「改善」と捉えるエンジニア育成戦略
shoota
2
400
LINE Developersプロダクト(LIFF/LINE Login)におけるフロントエンド開発
lycorptech_jp
PRO
0
120
NilAway による静的解析で「10 億ドル」を節約する #kyotogo / Kyoto Go 56th
ytaka23
3
380
20241214_WACATE2024冬_テスト設計技法をチョット俯瞰してみよう
kzsuzuki
3
530
フロントエンド設計にモブ設計を導入してみた / 20241212_cloudsign_TechFrontMeetup
bengo4com
0
1.9k
C++26 エラー性動作
faithandbrave
2
760
終了の危機にあった15年続くWebサービスを全力で存続させる - phpcon2024
yositosi
17
15k
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
169
14k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.3k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
0
98
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
Optimizing for Happiness
mojombo
376
70k
Code Review Best Practice
trishagee
65
17k
How STYLIGHT went responsive
nonsquared
95
5.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
29
2k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
247
1.3M
Navigating Team Friction
lara
183
15k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
32
2.7k
Transcript
ASCIIコードの小話 @ozuma5119 1 「新しいLinuxの教科書」を読む会 オンライン #12 2021/04/17
2 コンピュータの中では、 すべてが0(ゼロ)と1(イチ)で 表され…… 本当かなぁ……? コマンドだってechoとか アルファベットになってるし……
ゼロとイチで見てみよう - xxdコマンド $ cat sample.txt zshell is great. $
xxd -b sample.txt 0000000: 01111010 01110011 01101000 01100101 01101100 01101100 zshell 0000006: 00100000 01101001 01110011 00100000 01100111 01110010 is gr 000000c: 01100101 01100001 01110100 00101110 00001010 eat.. 3 アドレス データ部 ASCII表示
もうちょっと細かく $ cat sample.txt zshell is great. $ xxd -b
sample.txt 0000000: 01111010 01110011 01101000 01100101 01101100 01101100 zshell 0000006: 00100000 01101001 01110011 00100000 01100111 01110010 is gr 000000c: 01100101 01100001 01110100 00101110 00001010 eat.. 4 01111010 (2進数表現) 0172 (8進数表現、アタマに0を付ける) 122 (10進数表現) 0x7A (16進数表現、アタマに0xを付ける)
5 https://en.wikipedia.org/wiki/ASCII
$ man ascii 6 Oct Dec Hex Char Oct Dec
Hex Char ------------------------------------------------------------------------ 000 0 00 NUL '\0' 100 64 40 @ 001 1 01 SOH (start of heading) 101 65 41 A 002 2 02 STX (start of text) 102 66 42 B 003 3 03 ETX (end of text) 103 67 43 C 066 54 36 6 166 118 76 v 067 55 37 7 167 119 77 w 070 56 38 8 170 120 78 x 071 57 39 9 171 121 79 y 072 58 3A : 172 122 7A z .... .... 8進数 表現 10進数 表現 16進数 表現 ASCII文字 表現
つまづきやすいポイント 7 なんで8進数にしたり16進数に したりするの? A. 見やすいから。それだけ。 ぜんぶゼロとイチなら、すべて 2進数表現でいいのでは? A. 長すぎてダルいので16進数で短く書きたい。
それだけ。
8 https://en.wikipedia.org/wiki/File:Harddrive-engineerguy.ogv ハードディスクドライブ → 磁気記録 https://ja.wikipedia.org/wiki/NAND%E5%9E%8B%E3%83% 95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5 %E3%83%A1%E3%83%A2%E3%83%AA SSD →
電荷記録
9 コンピュータの中では、 すべてが0(ゼロ)と1(イチ)で 表され…… 本当です
ASCIIコードもうちょっと 制御コード(コントロールコード) 10 Oct Dec Hex Char ------------------------------------------- 010 8
08 BS '\b' (backspace) 011 9 09 HT '\t' (horizontal tab) 012 10 0A LF '\n' (new line) 013 11 0B VT '\v' (vertical tab) 014 12 0C FF '\f' (form feed) 015 13 0D CR '\r' (carriage ret)
ASCIIコードもうちょっと 制御コード(コントロールコード) 11 Oct Dec Hex Char ------------------------------------------- 012 10
0A LF '\n' (new line) 015 13 0D CR '\r' (carriage ret) どちらも改行だが、テレタイプ時代の名残りがある LF = ラインフィード。タイプライターの紙を1行送る CR = キャリッジリターン。タイプライターのヘッドを先頭に戻す
catで見えない文字を埋め込む 12 $ cat ascii.txt Hello, World! $ xxd ascii.txt
0000000: 4141 410d 4865 6c6c 6f2c 2057 6f72 6c64 AAA.Hello, World 0000010: 210a 編集のしかた: vim -b ascii.txt :%!xxd :%!xxd -r キャリッジリターンでカーソルを 先頭に戻すと、catではそこまでの 文字が消える
DEL は 0x7F (01111111) ASCIIは本来7bitで、テープに穴を開けてビット表現 失敗した文字は、テープの全部に穴を開けることでDELを 表現できる 13 https://en.wikipedia.org/wiki/Delete_character