16進数と2進数とPython
日常生活で使われているUSBメモリーや、SDカードなどの容量が16Gや、8G、スマホのギガなども16GBなどで、区切りのいい10GBなどありません。これは、2進数や16進数が関係していると思われます。また、2進数と10進数はPythonやドット絵などを作るときなどにも使われており、僕が改めて知っておきたいと思ったので書くことにしました。ここで色々まとめておきます。
10進数とは
10進数とは0-9までの記号を使って数字を表す。9の次は10となって一つ桁があがる。
使用例 お金、年齢、テストの点数など
2進数とは
2進数とは0と1で数を表す。
2進数だと良い例 ドット絵、単純な判断データ、ON/OFFの情報、コンピュータのプログラムなど
16進数とは
16進数は1-9とA-Fで15までの数を表す。2進数をみやすくしたもの。
16進数だと良い例 色コードの表現、2進数の桁を減らして表現できる、コンピュータの中で2進数は見にくいので人間が見やすいように16進数を使う。
2進数,16進数、10進数変換表
10進数 | 2進数 | 16進数 |
---|---|---|
0 | 0000 | 0 |
1 | 0001 | 1 |
2 | 0010 | 2 |
3 | 0011 | 3 |
4 | 0100 | 4 |
5 | 0101 | 5 |
6 | 0110 | 6 |
7 | 0111 | 7 |
8 | 1000 | 8 |
9 | 1001 | 9 |
10 | 1010 | A |
11 | 1011 | B |
12 | 1100 | C |
13 | 1101 | D |
14 | 1110 | E |
15 | 1111 | F |
16 | 10000 | 10 |
※256までの変換表を一番下に貼っておきます。
また、はてなブログで表を挿入させるときに使ったサイトを貼っておきます。
まとめ
実は下の表を見ると8、16は1000,10000と、きりが良い数字になっていることから8GB、16GB,32GBなどの製品しかないのです。また、識者によるとプログラミングにおいて2進数と16進数は大切だと言っていたので復習してみました。
256までの変換表(プログラム有り)
Pythonで変換表をつくる際に使ったプログラムをのせておきます。
for i in range (1,257): h=hex(i) strh=h[2:] b=bin(i) strb=b[2:] print(i,strh,strb)
10進数 | 16進数 | 2進数 |
---|---|---|
1 | 1 | 1 |
2 | 2 | 10 |
3 | 3 | 11 |
4 | 4 | 100 |
5 | 5 | 101 |
6 | 6 | 110 |
7 | 7 | 111 |
8 | 8 | 1000 |
9 | 9 | 1001 |
10 | a | 1010 |
11 | b | 1011 |
12 | c | 1100 |
13 | d | 1101 |
14 | e | 1110 |
15 | f | 1111 |
16 | 10 | 10000 |
17 | 11 | 10001 |
18 | 12 | 10010 |
19 | 13 | 10011 |
20 | 14 | 10100 |
21 | 15 | 10101 |
22 | 16 | 10110 |
23 | 17 | 10111 |
24 | 18 | 11000 |
25 | 19 | 11001 |
26 | 1a | 11010 |
27 | 1b | 11011 |
28 | 1c | 11100 |
29 | 1d | 11101 |
30 | 1e | 11110 |
31 | 1f | 11111 |
32 | 20 | 100000 |
33 | 21 | 100001 |
34 | 22 | 100010 |
35 | 23 | 100011 |
36 | 24 | 100100 |
37 | 25 | 100101 |
38 | 26 | 100110 |
39 | 27 | 100111 |
40 | 28 | 101000 |
41 | 29 | 101001 |
42 | 2a | 101010 |
43 | 2b | 101011 |
44 | 2c | 101100 |
45 | 2d | 101101 |
46 | 2e | 101110 |
47 | 2f | 101111 |
48 | 30 | 110000 |
49 | 31 | 110001 |
50 | 32 | 110010 |
51 | 33 | 110011 |
52 | 34 | 110100 |
53 | 35 | 110101 |
54 | 36 | 110110 |
55 | 37 | 110111 |
56 | 38 | 111000 |
57 | 39 | 111001 |
58 | 3a | 111010 |
59 | 3b | 111011 |
60 | 3c | 111100 |
61 | 3d | 111101 |
62 | 3e | 111110 |
63 | 3f | 111111 |
64 | 40 | 1000000 |
65 | 41 | 1000001 |
66 | 42 | 1000010 |
67 | 43 | 1000011 |
68 | 44 | 1000100 |
69 | 45 | 1000101 |
70 | 46 | 1000110 |
71 | 47 | 1000111 |
72 | 48 | 1001000 |
73 | 49 | 1001001 |
74 | 4a | 1001010 |
75 | 4b | 1001011 |
76 | 4c | 1001100 |
77 | 4d | 1001101 |
78 | 4e | 1001110 |
79 | 4f | 1001111 |
80 | 50 | 1010000 |
81 | 51 | 1010001 |
82 | 52 | 1010010 |
83 | 53 | 1010011 |
84 | 54 | 1010100 |
85 | 55 | 1010101 |
86 | 56 | 1010110 |
87 | 57 | 1010111 |
88 | 58 | 1011000 |
89 | 59 | 1011001 |
90 | 5a | 1011010 |
91 | 5b | 1011011 |
92 | 5c | 1011100 |
93 | 5d | 1011101 |
94 | 5e | 1011110 |
95 | 5f | 1011111 |
96 | 60 | 1100000 |
97 | 61 | 1100001 |
98 | 62 | 1100010 |
99 | 63 | 1100011 |
100 | 64 | 1100100 |
101 | 65 | 1100101 |
102 | 66 | 1100110 |
103 | 67 | 1100111 |
104 | 68 | 1101000 |
105 | 69 | 1101001 |
106 | 6a | 1101010 |
107 | 6b | 1101011 |
108 | 6c | 1101100 |
109 | 6d | 1101101 |
110 | 6e | 1101110 |
111 | 6f | 1101111 |
112 | 70 | 1110000 |
113 | 71 | 1110001 |
114 | 72 | 1110010 |
115 | 73 | 1110011 |
116 | 74 | 1110100 |
117 | 75 | 1110101 |
118 | 76 | 1110110 |
119 | 77 | 1110111 |
120 | 78 | 1111000 |
121 | 79 | 1111001 |
122 | 7a | 1111010 |
123 | 7b | 1111011 |
124 | 7c | 1111100 |
125 | 7d | 1111101 |
126 | 7e | 1111110 |
127 | 7f | 1111111 |
128 | 80 | 10000000 |
129 | 81 | 10000001 |
130 | 82 | 10000010 |
131 | 83 | 10000011 |
132 | 84 | 10000100 |
133 | 85 | 10000101 |
134 | 86 | 10000110 |
135 | 87 | 10000111 |
136 | 88 | 10001000 |
137 | 89 | 10001001 |
138 | 8a | 10001010 |
139 | 8b | 10001011 |
140 | 8c | 10001100 |
141 | 8d | 10001101 |
142 | 8e | 10001110 |
143 | 8f | 10001111 |
144 | 90 | 10010000 |
145 | 91 | 10010001 |
146 | 92 | 10010010 |
147 | 93 | 10010011 |
148 | 94 | 10010100 |
149 | 95 | 10010101 |
150 | 96 | 10010110 |
151 | 97 | 10010111 |
152 | 98 | 10011000 |
153 | 99 | 10011001 |
154 | 9a | 10011010 |
155 | 9b | 10011011 |
156 | 9c | 10011100 |
157 | 9d | 10011101 |
158 | 9e | 10011110 |
159 | 9f | 10011111 |
160 | a0 | 10100000 |
161 | a1 | 10100001 |
162 | a2 | 10100010 |
163 | a3 | 10100011 |
164 | a4 | 10100100 |
165 | a5 | 10100101 |
166 | a6 | 10100110 |
167 | a7 | 10100111 |
168 | a8 | 10101000 |
169 | a9 | 10101001 |
170 | aa | 10101010 |
171 | ab | 10101011 |
172 | ac | 10101100 |
173 | ad | 10101101 |
174 | ae | 10101110 |
175 | af | 10101111 |
176 | b0 | 10110000 |
177 | b1 | 10110001 |
178 | b2 | 10110010 |
179 | b3 | 10110011 |
180 | b4 | 10110100 |
181 | b5 | 10110101 |
182 | b6 | 10110110 |
183 | b7 | 10110111 |
184 | b8 | 10111000 |
185 | b9 | 10111001 |
186 | ba | 10111010 |
187 | bb | 10111011 |
188 | bc | 10111100 |
189 | bd | 10111101 |
190 | be | 10111110 |
191 | bf | 10111111 |
192 | c0 | 11000000 |
193 | c1 | 11000001 |
194 | c2 | 11000010 |
195 | c3 | 11000011 |
196 | c4 | 11000100 |
197 | c5 | 11000101 |
198 | c6 | 11000110 |
199 | c7 | 11000111 |
200 | c8 | 11001000 |
201 | c9 | 11001001 |
202 | ca | 11001010 |
203 | cb | 11001011 |
204 | cc | 11001100 |
205 | cd | 11001101 |
206 | ce | 11001110 |
207 | cf | 11001111 |
208 | d0 | 11010000 |
209 | d1 | 11010001 |
210 | d2 | 11010010 |
211 | d3 | 11010011 |
212 | d4 | 11010100 |
213 | d5 | 11010101 |
214 | d6 | 11010110 |
215 | d7 | 11010111 |
216 | d8 | 11011000 |
217 | d9 | 11011001 |
218 | da | 11011010 |
219 | db | 11011011 |
220 | dc | 11011100 |
221 | dd | 11011101 |
222 | de | 11011110 |
223 | df | 11011111 |
224 | e0 | 11100000 |
225 | e1 | 11100001 |
226 | e2 | 11100010 |
227 | e3 | 11100011 |
228 | e4 | 11100100 |
229 | e5 | 11100101 |
230 | e6 | 11100110 |
231 | e7 | 11100111 |
232 | e8 | 11101000 |
233 | e9 | 11101001 |
234 | ea | 11101010 |
235 | eb | 11101011 |
236 | ec | 11101100 |
237 | ed | 11101101 |
238 | ee | 11101110 |
239 | ef | 11101111 |
240 | f0 | 11110000 |
241 | f1 | 11110001 |
242 | f2 | 11110010 |
243 | f3 | 11110011 |
244 | f4 | 11110100 |
245 | f5 | 11110101 |
246 | f6 | 11110110 |
247 | f7 | 11110111 |
248 | f8 | 11111000 |
249 | f9 | 11111001 |
250 | fa | 11111010 |
251 | fb | 11111011 |
252 | fc | 11111100 |
253 | fd | 11111101 |
254 | fe | 11111110 |
255 | ff | 11111111 |
256 | 100 | 100000000 |
Google ColaboratoryでPythonを動かしてみた
Google ColaboratoryでPythonが動きますが、実際にどのように動くのか試してみました。
Google Colaboratoryとは
Google ColaboratoryとはGoogleアカウントさえあれば無料でPythonをダウンロードしていなくても、web上で動かせることができるPython実行環境です。意外とPythonのインストールに手間がかかってしまうので、その手間を省いてすぐにプログラムを書けるというのは一つのメリットです。また、Googleが用意した便利なGPUが無料で使えます。研究用だとGPUは500万くらいするのがありますが、ここでは無料です。また、プログラミングの共有が簡単にできるため、ペアプログラミングなどが容易にできます。
GPUとCPUの違い
GPUの主な役割は3Dグラフィクスなどの画像描写に必要な計算処理でCPUの役割はコンピュータ全体の計算処理です。例えて言うと、学校のあるクラスの中で成績が平均90点で運動等もすべてできる優秀な子がCPUで、足の速さだけで言えば世界クラスの速さで優秀な子よりも速いがそれ以外は何もできない子がGPUです。
実際に使ってみる
Google Colaboratory全体の編集画面はこんな感じです。
簡単な計算プログラムも実行してみました。
実行すると
ちゃんと実行できます。また、IDLEだとプログラムを実行するショートカットキーはF5キーですが、Colaboratoryでそのようなキーがあるのか調べたところ「⌘/Ctrl + M」と書いてありましたが、僕のMacでは実行できませんでした。
次にこの前作ったfizbuzゲームをいれてみます。しっかり動きますね。
また、GoogleはPythonなどが学べる新しい講座「Google IT Automation With Python Professional Certificate」を発表し、オンライン教育サービス「Coursera」で提供されている。PythonやGit、ITオートメーションを学ぶ初心者レベルの6講座のプログラムで、誰でもPythonを扱えるようになっています。
最後に
Google Colaboratoryは色んな可能性があるので、これから使って気づいたことがあったらこの記事に追記していこうと思います。
実用的ロボット製作会社のボストン・ダイナミクス社
四足歩行ロボットや作業ロボットなどをつくっているBoston Dynamics(ボストン・ダイナミクス)社とはどのような会社なのか、気になったので調べてみました。
Boston Dynamics社とは?
ロボット開発を手掛けるアメリカの企業です。ボストン・ダイナミクス社の開発するロボットは高度な機動力、知性を備えている最先端ロボットです。実際の現場で使われることをシミュレーションしているため、意地悪なことをあえてやってます。
また、ロボットに関する世界的な専門学者クラスの経験と技術を持っており、新しいロボットを開発するのに最高の環境が揃っているといえます。
四足歩行ロボットSpot
上の画像の黄色い四足のロボットがSpotです。
このロボットは荒地や階段をすいすいと進み、屋内の作業に最適な動きができます。
また、アームやガスセンサーなどをつけることでドアの開け締めなどといった様々なことができるようになり作業できる幅が格段とあがります。
そして今年このSpotのSDKが発表されました。SDKとはSpotの開発に携わった人以外のプログラマーでも扱いやすくするために簡易化された関数群などのことです。
二足歩行ロボットAtlas
アトラスは非常に俊敏な移動と軽やかな動作をし、人間が中に入っているかのように動くことができます。
また、Atlasの部品は3Dプリンターでつくられており、非常に軽量で跳躍や宙返りに必要な強度をもっています。将来は人型ロボットが私達の色んなところで活躍するかもしれません。
運搬ロボットHandle
Handleは倉庫内でダンボールを運搬、トラックからの荷降ろしなどの作業をするロボットです。現在使われている運搬ロボットはルンバみたいなロボットにダンボールをのせて動きますが、Handleは自ら動いてベルトコンベアにのせるため、人間が作業に入ることを最小限にすることができます。
また、リーチは3mと大きいですが、移動の際はコンパクトな形に折りたたんで倉庫内や施設移動をすることができます。
まとめ
BstonDynamics社は高度な技術と実用的なロボットを開発している会社です。
公式サイトの求人のところをみると様々なエンジニアを求めています。(Pythonもあった)この機会にプログラミングをしてみてはいかがでしょうか。
公式サイト
人気急上昇中!プログラミング言語Pythonとは!?
近年、AI技術の進歩などによりプログラマーの需要が急増しています。私たちの日常にも少しずつ顔を出しているAI技術ですが、その中で急激に人気を伸ばしているプログラミング言語Pythonについて紹介していきたいと思います。
https://xtech.nikkei.com/atcl/nxt/column/18/01068/111100001/
Pythonとは?
Pythonとはプログラミング言語の一つで、文法がシンプルで作業効率とコードの信頼性を高めることを重視してデザインされています。また、Pythonは活用の幅が広く、教育、機械学習、データ収集など様々な使い方があります。身近なところで言うと YouTube、Dropbox、Instagramなど私達が一度は触れたことのあるものばかりです。また、AI技術は漫画でも風刺されています。手塚治虫氏の著書、火の鳥未来編でもダニューバーとハレルヤというAIが出て来ています。
Pythonホームページ
名前の由来
Pythonという名前は作者であるグイド・ヴァン・ロッサム氏が「空飛ぶモンティ・パイソン」というイギリスのコメディ番組のファンだったからです。この番組は同時代の件や哲学などをネタにし風刺のきいた知的な番組で多くの欧米文化に影響を与えました。
また、パイソンにはニシキヘビという意味もあります。なので、Pythonのアイコンなどはニシキヘビのロゴが使われています。
Pythonの将来性
結論から言うと、Pythonの将来性は高いです。また、海外でのPythonの人気は非常に高く、人材不足なので今からはじめるのに有利な条件となっています。そして現在、日本もPythonエンジニアが少ないです。そこで、Pythonを使う企業が日本でも増えている中、今Pythonをマスターしておくのはとても有利ということになります。
Pythonを実際に使っている企業
日本だと以下の企業などで使われています。
ヤフー株式会社
楽天株式会社
corp.rakuten.co.jp
株式会社バンダイナムコオンライン
このように大手企業でもPythonエンジニアを求めていますが、日本でのPythonの普及は進んでおらず、Pythonエンジニアは希少であるため給料が高いです。また、Pythonでのプログラミングができると世界のどこへ行っても求められる人材となることができます。まだまだ需要のある分野なので今からやっても遅くはありません。
Pythonの特徴
大まかに説明すると次のようになります。
構文がシンプルで少ない
Pythonは学びやすいことも特徴です。他言語と比べるとPythonの構文は非常にシンプルな構成です。また、覚えなければならない構文も少ないため、初めてプログラミングを学ぶ方には非常におすすめです。
ライブラリが豊富
ライブラリとは汎用性が高いプログラムをひとまとまりにしたもので、Pythonには機械学習や深層学習で使えるライブラリが数多く用意されています。このためエンジニアにとって使いやすく作業効率が格段に上がります。
試行錯誤がやりやすい
Pythonはプログラムを書いたらすぐに実行できる「インタープリタ言語」です。簡単に実行ができるため初心者にも、新しいものを生み出すエンジニアにも向いています。また、C言語やjavaなどはプログラムを実行ファイルに一度変換しないといけないため手間がかかります。なので実行速度が早いと言うのは一つの利点です。
今からはじめたい方
今からプログラミングをはじめるという方はPythonがおすすめです。まだまだ伸びる分野ですし、何より世界中でPythonエンジニアが求められています。ここではPythonについて紹介しましたが、実際に何からすれば良いかをわかりやすく書いた本を紹介しておきます。
Python 1年生 体験してわかる!会話でまなべる!プログラミングのしくみ
ゲームセンターあらしと学ぶ プログラミング入門 まんが版こんにちはPython
現実世界でAIがどのようにつかわれているのか
fizzbuzzゲームの応用
この記事で紹介している本から学んだことを応用してゲームを作ってみました。
本で紹介されているゲームとは逆のルールとなっています。
- 目次
ゲームルール
- fizとbuzの数字を当ててください。
- 3〜10までの数字の間にあります。
- 初級から上級までの難易度が選べます。
- 50個数字が出ますので、その中から推測してください。
実行する
ここにソースを貼り付けるとPythonがなくても実行できます。
colab.research.google.com
プログラム解説
import random #ランダムモジュールを読み込む def fizbuz(): while True: #無限ループ開始 fiz=random.randint(3,10) #fizを乱数でつくる buz=random.randint(3,10) #buzを乱数でつくる key=0 #keyの値を0にする level=1 #levelに1を代入する print("fizとbuzを当てください!fizとbuzは3から10の間です") print("難易度を入力してください。1は初心者、2は中級者、3は上級者、0で終了") #難易度を入力させる level =input() level=int(level) if(level==1): #1が入力された時の処理 start_number=1 elif(level==2): #2が入力された時の処理 start_number=50 elif(level==3): #3が入力された時の処理 start_number=100 elif(level==0): #0が入ると無限ループを終了させる print ("終了します") break else: #それ以外が入力された時の処理 print("入力が間違っているので、初心者スタートです") start_number=1 for i in range(start_number,start_number+50): #fiz,buz表示のループ if i%fiz == 0 and i%buz==0: #iをfizとbuzで割ったあまりが0ならば print ("フィズバズ") elif i % fiz==0: #iをfizで割ったあまりが0ならば print("フィズ") elif i % buz ==0: print("バズ") else: #fizでもbuzでもなければ、iを表示 print(i) print("fizを入力してください") #クイズモード開始 key =input() #key入力を受け付ける key=int(key) if(key==fiz): #押されたキーがfizだったら print ("正解です") else: print("ハズレです") print("fizは",fiz,"です") #buzを聞く print("buzを入力してください") key =input() key=int(key) if(key==buz): #buzだった時の処理 print ("正解です") else: print("ハズレです") print("buzは",buz,"です") fizbuz()
fizzbuzzゲームとは
ja.wikipedia.org
[書評]ゲームセンターあらしと学ぶプログラミング入門こんにちはPython
この書の著者はすがやみつる氏、「ゲームセンターあらし」のキャラクターが出てきて初心者でもできるようにプログラミングを噛み砕いて紹介している本になっていて、プログラミングの入門書「こんにちはPython」は現在Amazon.co.jpのプログラミング部門で5位となっています。
「ゲームセンターあらし」とは
そして過去に大ブレイクしたゲーム漫画「ゲームセンターあらし」は現在コロコロコミック公式サイトで無料で公開されています
そんな噂の本を読んでみて感じた事を紹介します
1.基本中の基本から漫画が進む
最初から簡単なプログラミングを打つという感じではなく、なぜPythonを使うのか、
なぜプログラミングをするのか、というとこから始まっています。
Pythonを使うメリット
など
そうして、Pythonをダウンロードする手順に繋がります。また、そこからあまり他のPython入門書ではみられないパソコンのキーボード入力に慣れるといった基礎中の基礎も話の中に入っていてパソコンをあまり触ったことない方でも進められるようになっています。
2. 初心者でもわかりやすい噛み砕いた説明
この書の中でプログミングをしていき、その中で起こりやすいミスやエラー、演算子、についての簡単な説明がされています。
これにより、なぜここでこれを使うのかといった疑問が解消される流れになっています。また、自分でつくるゲームの楽しさを実感できるような話の内容です。
例 比較演算子やif文、for文などの説明
また、最初から最後までを通して3個のシンプルなゲームをゲームを作れるようになっています。また、その中で改良できる点や音の出し方など細かいところも書かれているのでよりレベルアップしたゲームをつくることができます。そして、プログラミングができれば作ったゲームを発展させたりも自由自在ということに気づけます。
3.こんな人におすすめ!
本書は、入門書の中の入門書となっているためプログラミングをしたことない学生、
大人におすすめです。この本を読んでから、他のPython入門書にいくと、より理解して
プログラミング学習を進められると思います。
今回紹介した本はこちらです
ゲームセンターあらしと学ぶ プログラミング入門 まんが版こんにちはPython
ゲームセンターあらし第一話
コミック
フリーアイコン配ります
プレゼント
フリー画像として作ったのでよかったら使ってみてください
ぼくの顔に良く似ていると評判なので、スマホのロック画面にすると幸運upするかもしれません!知らんけど
また、zoomのバーチャル背景としても使えますよ!
アイコン