Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ASCIIコードの小話
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Osumi, Yusuke
April 17, 2021
Technology
470
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ASCIIコードの小話
「新しいLinuxの教科書」を読む会 オンライン #12 での発表資料です。
https://linuxbook.connpass.com/event/208181/
Osumi, Yusuke
April 17, 2021
More Decks by Osumi, Yusuke
See All by Osumi, Yusuke
本の紹介の補足
ozuma
1
420
gitサービス3兄弟
ozuma
0
430
簡体字は楽
ozuma
0
500
ソフトウェアは固定資産
ozuma
0
450
今いるディレクトリを消すとどうなる
ozuma
1
430
名前付きパイプ FIFO
ozuma
0
580
文章、作文技法 リモートワーク
ozuma
1
950
CentOSの今後のリリース(簡易説明)
ozuma
0
430
AndroidでもLinux動いてるよ
ozuma
0
460
Other Decks in Technology
See All in Technology
range over func 2年間の軌跡 Issue #56413 はGoのエコシステムをどう変えたか
ryujicre8ive
0
190
新機種発売前に見直そう!端末移行で再ログインが要るアプリ・要らないアプリは何が違うのか 〜シームレスに再開できる設計と実装〜
zozotech
PRO
0
190
What the customer really needed
kawaguti
PRO
1
160
銀行勘定系システムにおける開発プロセス刷新×AIによる環境モダナイゼーション / Development Process Transformation and AI-Driven Environment Modernization
muit
0
2.2k
omasushiというライブラリを作った
polidog
PRO
0
230
[2026-09-11]SREは誰のもの?運用エンジニアが始める 「SRE領域への越境」とチームの進化の軌跡 〜Road to NEXT CRE
tosite
0
240
DEFCON_CHV_CTF_Write-up.pdf
bata_24
0
150
2026_devsumi_ozono.pdf
o3
3
500
Genieを崇めよ
kameitomohiro
0
120
Claude Code本って、 読む必要あるの?
oikon48
2
460
Screen Lens - 今見てる画面を翻訳する
komagata
0
290
データ_AIの事業の勝敗をわけるもの
nek0128
0
350
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
202
76k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
330
Designing Powerful Visuals for Engaging Learning
tmiket
1
550
A better future with KSS
kneath
240
18k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
850
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
880
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
430
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
610
Statistics for Hackers
jakevdp
799
230k
Ruling the World: When Life Gets Gamed
codingconduct
0
330
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.2k
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