シフト演算子はお魚ではありません
🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟いか🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐊🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟たい🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐊🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟
マックス「俺はな・・
>>は魚だとおもっていたんだよなぁ。」
🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟
シフト演算子>>「さあ この
広大な青い海の中で
私を使って
プログラミングしてくださいな。」
🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟
マックス「うぉぉ 燃えてきたぜ。
お前が
シフト演算子だっだとはな」
🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟
#include <iostream>
using namespace std;
int main() {
int a=5<<2;
cout << a << "\n";
return 0;
}
コンパイル結果
20
🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟
マックス「華麗に決めるぜ!
まずはな!
なんで
コンパイル結果が20になるんだ!?
といいたいところだが
俺はなぁ
根本的に
int a=5<<2;
の意味がわからん!
ぷくぷくぷく💭」
🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟
シフト演算子<<
「そう
int a=5<<2;
は
変数aを
5<<2
で初期化してるんです。」
🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟<<🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟
マックス「ぷくぷく💭
int a=5;
や
int a=8;
のように
変数aを5や8で初期化したように
変数aを5<<2
で初期化したってことか
ぷくぷく💭」
シフト演算子<<
「そう わたしは演算子で
数値データ5に作用しているんです
5<<2
の<<は
5*2
5+2
の
乗算演算子*
や
加算演算子+
と同じ
演算子なんだ。
だから
int a=5<<2;
は
int a=5*2;
や
int a=5+2;
のように
変数aを初期化することと一緒かな?」
マックス「なるほど・・・
そうなのか
🐟じゃないんだな
🐠じゃないんだな
ナイス説明だ
がっちり理解したぜぇ。
うぉぉ
ならば・・・
そうだ
これだ!!
だが
5<<2
の意味がわからぬぅ!
なんで5に<<がくっついているんだ」
シフト演算子<<「
それは次のプログラムをみれば
わかるようになるなる。
#include <iostream>
using namespace std;
int main() {
int a=5;
cout << a << "\n";
return 0;
}
コンパイル結果
5
マックス「まんま
普通に変数aに格納された数値5
が
コンパイル結果に表示された!
やるなぁ
ぷくぷく💭」
シフト演算子<<「すごい?
そう思うでしょう?
この青い海の中でおこる
コンピュータプログラムの神秘です。
int a=5;
が実行されると
まず
数値データ5は
int型の形式で32ビットのメモリに
00000000000000000000000000000101
と格納されます
それから
int型の変数aに数値データ5が代入されます
ところが
int a=5<<2;
が実行されると
まず最初に(⋈◍>◡<◍)。✧♡
int型の形式で32ビットのメモリに
数値データ5が
00000000000000000000000000000101
と格納されます
次に
5<<2
の働きにより
メモリに格納された
00000000000000000000000000000101
は
左に2つずれて
int型の形式で32ビットのメモリに
00000000000000000000000000010100
と格納されるんです。
すいすい。」
🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟<<🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟
🐡 🐡 🐡~~~
マックス「ぷくぷく💭?
何がおこってるんだ
これは??
こ、これが
これがぁぁ
青い奇跡
なのかぁ」
シフト演算子<<
「すいすい。
もう一度繰り返すと
int a=5<<2;
が実行されると
まず
数値データ5が
int型の形式で32ビットのメモリに
00000000000000000000000000000101
と格納されます
そして
5<<2
が実行されると
int型の形式で32ビットのメモリに格納されている
00000000000000000000000000000101
のすべての0と1が左に2個ずれた状態で
00000000000000000000000000010100
と格納し直されます
101が左に2つずれたら
空白になる部分の
10の位と1の位には
0が格納されるんです
すいすい。
int a=16<<5;
が実行されると
まず
数値データ16が
int型の形式で32ビットのメモリに
00000000000000000000000000010000
と格納されますが
16<<5
の働きにより
int型の形式で32ビットのメモリに格納されている
00000000000000000000000000010000
のすべての0と1が左に5個ずれた状態で
00000000000000000000001000000000
と格納しなおされるんです。
10000が左に5つずれたら
空白になる部分の
1万の位と千の位と100の位と10の位と1の位には
0が格納されるんですよ。
すいす~い」
マックス「な、なにぃ
ぷくぷく💭」
シフト演算子<<「そ・れ・で
5<<2
が実行されると
int型の形式でメモリに
00000000000000000000000000010100
が格納されることになります
00000000000000000000000000010100
は
数値データ20をあらわしています。
そして
int a=5<<2;
の実行により
int型の変数aに5<<2
が代入されると
int型の変数aに20が代入される
つまり
変数aの管理しているメモリに
00000000000000000000000000010100
が格納されることになります
すいすい。
ということで
int型の変数aには
00000000000000000000000000010100
つまり
数値データ20が
格納されていることになるので
cout << a << "\n";
が実行されると
数値20がコマンドプロンプト画面に表示されることになるです。」
🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟
マックス「ぷくぷく💭
ナイス説明!
01ずらしか・・・
そのようなことができるとは・・・
シフト演算子
まさに
この青い海のように神秘だな。
ぷくぷく💭」
🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟
マックス「はっ・・・
それでこの理想郷の青い海の中を泳いでいたんだな。」
🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟
シフト演算子「この青い海で泳いでいるから
他のみんなもこの青い海に泳ぎにつれてきてね。」
🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟
マックス「おう そうだな(´▽`*)/」
🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟
🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます