狠狠撸

狠狠撸Share a Scribd company logo
明日使えないすごいビット演算
KMC1回生 prime(Twitter id:@_primenumber)
ビット演算とは
●

●

●

コンピューター内で数値や文字列などのデータは2進数で記
録されている
ビット演算とは、2進数を0/1の列として操作するような演算
のこと
ビット反転 (C言語では ~x)
–

各ビットの0/1を反転させる

x

0 1 1 0 1 0 1 1

~x

1 0 0 1 0 1 0 0
ビット演算とは
●

ビット論理和 (C言語では x|y)
–

各桁を比較して、少なくとも一方が1なら1

x
y

0 0 1 0 1 0 1 1

x|y

1 1 1 0 1 0 1 1

1 1 0 0 1 0 0 1
ビット演算とは
●

ビット論理積 (C言語では x&y)
–

各桁を比較して、両方とも1なら1

x
y

0 0 1 0 1 0 1 1

x&y

0 0 0 0 1 0 0 1

1 1 0 0 1 0 0 1
ビット演算とは
●

ビット排他的論理和 (C言語では x^y)
–

各桁を比較して、片方のみが1なら1

x
y

0 0 1 0 1 0 1 1

x^y

1 1 1 0 0 0 1 0

1 1 0 0 1 0 0 1
ビット演算とは
●

左ビットシフト (C言語では x<<n)
–

x

各桁を左に指定した桁数ずらす

0 0 1 0 1 0 1 1

x<<3 0 1 0 1 1 0 0 0
ビット演算とは
●

右ビットシフト (C言語では x>>n)
–

x

各桁を右に指定した桁数ずらす

0 0 1 0 1 0 1 1

x>>3 0 0 0 1 0 1 0 1
上位桁に何を詰めるかによっていくつか種類がある
● 0を詰める
● 元の最上位桁と同じ物を詰める
ビット演算とは
●

ビット演算は回路が単純になるため、とても高速なことが多い
–
–

●

とはいえ最近のCPUだと加減乗算も同じぐらい速い
組み合わせて使うことも多い

うまく使うとものすごい高速化できる
–

●

●

単純な実装に比べて数十倍速くなることも

今回はビット演算を用いていろいろな操作を高速にする例を
挙げます
数値は2の補数表現で格納されているものとします
明日使えないすごいビット演算
●

「1になっている一番下の桁」を取得する
–

2の何乗で割り切れるか,みたいなことが分かったりする

data

0

1

0

1

1

0

0

0
明日使えないすごいビット演算
●

「1になっている一番下の桁」を取得する
–

2の何乗で割り切れるか,みたいなことが分かったりする

data

0

1

0

1

1

0

0

0

0

0

0

0

1

0

0

0
明日使えないすごいビット演算
●

「1になっている一番下の桁」を取得する

data & (-data)
data

0

1

0

1

1

0

0

0

-data

1

0

1

0

1

0

0

0

実は,-dataは~data+1に等しい
(足して0になるようにするため)
明日使えないすごいビット演算
●

「1になっている一番下の桁」を取得する

data & (-data)
data

0

1

0

1

1

0

0

0

-data

1

0

1

0

1

0

0

0

data & (-data) 0

0

0

0

1

0

0

0

実は,-dataは~data+1に等しい
(足して0になるため)
明日使えないすごいビット演算
●

「1になっている一番下の桁」を0にする

data &= data-1
data

0

1

0

1

1

0

0

0

data-1

0

1

0

1

0

1

1

1

data & data-1

0

1

0

1

0

0

0

0
明日使えないすごいビット演算
●

「1になっている一番上の桁」を求める
–
–

●

数値のだいたいの大きさを求める
log2 ( n ) の整数部分を求めるのに使える

これは一発では行かないが、うまい方法がある
明日使えないすごいビット演算
●

「1になっている一番上の桁」を求める
–
–

●

数値のだいたいの大きさを求める
log 2 ( n ) の整数部分を求めるのに使える

これは一発では行かないが、うまい方法がある
–

二分探索!
明日使えないすごいビット演算
●

「1になっている一番上の桁」を求める

0

1

0

1

1

0

0

1

0xF0 1

1

1

1

0

0

0

0

ビット論理積

0

1

0

1

0

0

0

0
明日使えないすごいビット演算
●

「1になっている一番上の桁」を求める

0

1

0

1

1

0

0

1

0xF0 1

1

1

1

0

0

0

0

ビット論理積

0

1

0

1

0

0

0

0

!= 0
明日使えないすごいビット演算
●

「1になっている一番上の桁」を求める

0

1

0

1

1

0

0

1

0xF0 1

1

1

1

0

0

0

0

ビット論理積

0

1

0

1

0

0

0

0

!= 0

1になっている一番上の桁は上位4桁のどれか!
明日使えないすごいビット演算
●

「1になっている一番上の桁」を求める

0

1

0

1

1

0

0

1

0

1

0

1

0

0

0

0

0xCC 1

1

0

0

1

1

0

0

ビット論理積

0

1

0

0

0

0

0

0
明日使えないすごいビット演算
●

「1になっている一番上の桁」を求める

0

1

0

1

1

0

0

1

0

1

0

1

0

0

0

0

0xCC 1

1

0

0

1

1

0

0

ビット論理積

0

1

0

0

0

0

0

0

!= 0

1になっている一番上の桁は上位2桁のどれか!
明日使えないすごいビット演算
●

「1になっている一番上の桁」を求める
–

data
data
data
data
data

サンプルコード(32ビット)
=
=
=
=
=

data
data
data
data
data

&
&
&
&
&

0xFFFF0000
0xFF00FF00
0xF0F0F0F0
0xCCCCCCCC
0xAAAAAAAA

?
?
?
?
?

data
data
data
data
data

&
&
&
&
&

0xFFFF0000
0xFF00FF00
0xF0F0F0F0
0xCCCCCCCC
0xAAAAAAAA

:
:
:
:
:

data;
data;
data;
data;
data;
明日使えないすごいビット演算
●

ビット列を逆転する
–

高速フーリエ変換などで用いる

data

0

1

0

1

1

0

0

1

dataの逆転

1

0

0

1

1

0

1

0
明日使えないすごいビット演算
●

ビット列を逆転する
–

これも一気にやるのは無理

data

0

0

1

data&0x55
data&0xAA

1

0

1

1

1
0

0

0

0
1

1
1

0
明日使えないすごいビット演算
●

ビット列を逆転する

data

0 1 0 1 1 0 0 1

(data&0x55)<<1 1
(data&0xAA)>>1

1
0

0
0

1
1

0
明日使えないすごいビット演算
●

ビット列を逆転する

data

0 1 0 1 1 0 0 1

(data&0x55)<<1 1
(data&0xAA)>>1

1
0

0
0

1
1

0

ビット論理和

1 0 1 0 0 1 1 0
明日使えないすごいビット演算
●

ビット列を逆転する

変更前のdata

0 1 0 1 1 0 0 1

変更後のdata

1 0 1 0 0 1 1 0
明日使えないすごいビット演算
●

ビット列を逆転する

0 1 0 1 1 0 0 1
変更後のdata

1 0 1 0 0 1 1 0

data&0x33
data&0xCC 1 0

1 0

1 0
0 1
明日使えないすごいビット演算
●

ビット列を逆転する

0 1 0 1 1 0 0 1
変更後のdata

1 0 1 0 0 1 1 0

(data&0x33)<<2 1 0
(data&0xCC)>>2

1 0
1 0

0 1

1 0 1 0 1 0 0 1
明日使えないすごいビット演算
●

ビット列を逆転する

0 1 0 1 1 0 0 1
1 0 1 0 0 1 1 0

1 0 1 0 1 0 0 1
明日使えないすごいビット演算
●

ビット列を逆転する

0 1 0 1 1 0 0 1
1 0 1 0 0 1 1 0
1 0 1 0 1 0 0 1
1 0 0 1 1 0 1 0
明日使えないすごいビット演算
●

ビット列を逆転する

0 1 0 1 1 0 0 1

1 0 0 1 1 0 1 0
明日使えないすごいビット演算
●

ビット列を逆転する

●

dataは32ビット符号なし型とする

data =
|
data =
|
data =
|
data =
|
data =

((data &
((data &
((data &
((data &
((data &
((data &
((data &
((data &
(data <<

0x55555555)
0xAA555555)
0x33333333)
0xCCCCCCCC)
0x0F0F0F0F)
0xF0F0F0F0)
0x00FF00FF)
0xFF00FF00)
16) | (data

<<
>>
<<
>>
<<
>>
<<
>>
>>

1)
1);
2)
2);
4)
4);
8)
8);
16);
明日使えないすごいビット演算
●

1になっているビットの数を数える

●

ビットレベルでハミング距離を取りたい時などに使う

●

素直な実装(int型を32bitと仮定)

int count = 0;
for (int i = 0;i < 32;i++) {
count += (data >> i) & 1;
}
明日使えないすごいビット演算
●

1になっているビットの数を数える

●

ちょっと速い実装

int count = 0;
for(; data; data &= data – 1) {
++count;
}
data &= data-1で1になっている一番小さい桁が0になる
明日使えないすごいビット演算
●

●

1になっているビットの数を数える
けっこう速い実装
10進数
2進数
1の個数
0
00000000 0
1
00000001 1
2
00000010 1
3
00000011 2
4
00000100 1
...
...
...
255
11111111 8
あらかじめ0~255までの数について1の個数を数えて配列に
入れておく
明日使えないすごいビット演算
●

1になっているビットの数を数える

●

けっこう速い実装

int count = 0;
count += table[data & 0xFF];
count += table[(data >> 8) & 0xFF];
count += table[(data >> 16) & 0xFF];
count += table[(data >> 24) & 0xFF];
table[256] : 1の個数が入った配列
明日使えないすごいビット演算
●

1になっているビットの数を数える

●

配列を使った実装はけっこう速い
–

素直な方法の20倍くらい
明日使えないすごいビット演算
●

1になっているビットの数を数える

●

配列を使った実装はけっこう速い
–

●

素直な方法の20倍くらい

しかし、さらに倍くらい速い実装が存在する
明日使えないすごいビット演算

1

0

1

1

0

1

0

0

各桁の0/1を「その桁の1の個数」と読み替えることができる
明日使えないすごいビット演算

1個 0個 1個 1個 0個 1個 0個 0個
各桁の0/1を「その桁の1の個数」と読み替えることができる
明日使えないすごいビット演算

1個 0個 1個 1個 0個 1個 0個 0個
0x55

0

1

0

1

0

1

0

1

ビット論理積

0個

1個

1個

0個
明日使えないすごいビット演算

1個 0個 1個 1個 0個 1個 0個 0個
0xAA

1

0

1

0

1

0

1

ビット論理積

1個

1個

0個

0個

0
明日使えないすごいビット演算

1個 0個 1個 1個 0個 1個 0個 0個
&0xAA 1個
&0x55

1個
0個

0個
1個

0個
1個

0個
明日使えないすごいビット演算

1個 0個 1個 1個 0個 1個 0個 0個
1個

1個

0個

0個

0個

1個

1個

0個
明日使えないすごいビット演算

1個 0個 1個 1個 0個 1個 0個 0個
1個

1個

0個

0個

0個

1個

1個

0個

足し算

0

1個

1

0個

0

1個

0

0個

2桁ごとに「その2桁にあった1の数」が格納された!!!
明日使えないすごいビット演算

1個 0個 1個 1個 0個 1個 0個 0個
0

1個

&0xCC 0

1個

0個

1

&0x33

1

0

0個
1個

0

0個

0
0

1個

0個
明日使えないすごいビット演算

1個 0個 1個 1個 0個 1個 0個 0個
0

1個

1

0個

1
0

0

1個

0

0個

0個

0

0個

1個

0

1個
明日使えないすごいビット演算

1個 0個 1個 1個 0個 1個 0個 0個
0

1個

1

0個

1
0

0

1個

0

0個

0個

0

0個

1個

0

1個

0

1個

足し算

0

0

1

1個

0

0
明日使えないすごいビット演算

1個 0個 1個 1個 0個 1個 0個 0個
0

0

1

1個

&0xF0 0

0

1

1個

0

0

1個

0

&0x0F

0

0

0

1個
明日使えないすごいビット演算

1個 0個 1個 1個 0個 1個 0個 0個
0

0

1

1個

0

0

0

1個

0

0

0

1個

0

0

1

1個
明日使えないすごいビット演算

1個 0個 1個 1個 0個 1個 0個 0個
0

0

1

1個

0

0

0

1個

0

0

0

1個

0

0

1

1個

0

0個

足し算

0

0

0

0

0

1
明日使えないすごいビット演算
●

1になっているビットの数を数える

●

かなり速い実装(dataはunsigned int型)

data =
+
data =
+
data =
+
data =
+
data =
+

(data & 0x55555555)
((data & 0xAAAAAAAA)
(data & 0x33333333)
((data & 0xCCCCCCCC)
(data & 0x0F0F0F0F)
((data & 0xF0F0F0F0)
(data & 0x00FF00FF)
((data & 0xFF00FF00)
(data & 0x0000FFFF)
((data & 0xFFFF0000)

>> 1);
>> 2);
>> 4);
>> 8);
>> 16);
明日使えないすごいビット演算
●

こうして、苦労の末我々は爆速で1になっているビットの数を数
えるアルゴリズムを手に入れた!!!
明日使えないすごいビット演算
●

●

こうして、苦労の末我々は爆速で1になっているビットの数を数
えるアルゴリズムを手に入れた!!!
しかし???
明日使えないすごいビット演算
●

●

●

こうして、苦労の末我々は爆速で1になっているビットの数を数
えるアルゴリズムを手に入れた!!!
しかし???
IntelのSIMD拡張命令セット、SSE4.2から、ズバリ?1になって
いるビットの数を数える?CPU命令が追加された!(popcnt)
明日使えないすごいビット演算
●

●

●

こうして、苦労の末我々は爆速で1になっているビットの数を数
えるアルゴリズムを手に入れた!!!
しかし???
IntelのSIMD拡張命令セット、SSE4.2から、ズバリ?1になって
いるビットの数を数える?CPU命令が追加された!(popcnt)
–

実際ビット演算を使ったアルゴリズムより2倍ほど速い
明日使えないすごいビット演算
●

●

●

こうして、苦労の末我々は爆速で1になっているビットの数を数
えるアルゴリズムを手に入れた!!!
しかし???
IntelのSIMD拡張命令セット、SSE4.2から、ズバリ?1になって
いるビットの数を数える?CPU命令が追加された!(popcnt)
–

●

実際ビット演算を使ったアルゴリズムより2倍ほど速い

我々の努力は無駄だった!!!!!
まとめと注意

●
●

ビット演算はうまく使うととても高速
ぱっと見何してるか判りづらいのでバグを埋め込
みやすい
–

ものすごい高速化をする必要のないときは使わ
ないほうが吉
まとめと注意

●
●

ビット演算はうまく使うととても高速
ぱっと見何してるか判りづらいのでバグを埋め込
みやすい
ものすごい高速化をする必要のないときは使わ
ないほうが吉
CPU命令速い!!!!!
–

●

–

本当に高速化したいときはまずこっちを考えるべき
おわり

More Related Content

What's hot (20)

搁别永続データ构造が分からない人のためのスライド
搁别永続データ构造が分からない人のためのスライド搁别永続データ构造が分からない人のためのスライド
搁别永続データ构造が分からない人のためのスライド
Masaki Hara
?
指数时间アルゴリズム入门
指数时间アルゴリズム入门指数时间アルゴリズム入门
指数时间アルゴリズム入门
Yoichi Iwata
?
Rolling hash
Rolling hashRolling hash
Rolling hash
HCPC: 北海道大学競技プログラミングサークル
?
プログラムを高速化する话
プログラムを高速化する话プログラムを高速化する话
プログラムを高速化する话
京大 マイコンクラブ
?
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
Fixstars Corporation
?
AtCoder Beginner Contest 023 解説
AtCoder Beginner Contest 023 解説AtCoder Beginner Contest 023 解説
AtCoder Beginner Contest 023 解説
AtCoder Inc.
?
マルチコアを用いた画像処理
マルチコアを用いた画像処理マルチコアを用いた画像処理
マルチコアを用いた画像処理
Norishige Fukushima
?
Nazoki
NazokiNazoki
Nazoki
Ken Ogura
?
ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門
Hirotaka Kawata
?
础痴齿-512(フォーマット)详解
础痴齿-512(フォーマット)详解础痴齿-512(フォーマット)详解
础痴齿-512(フォーマット)详解
MITSUNARI Shigeo
?
双対性
双対性双対性
双対性
Yoichi Iwata
?
暗号文のままで計算しよう - 準同型暗号入門 -
暗号文のままで計算しよう - 準同型暗号入門 -暗号文のままで計算しよう - 準同型暗号入門 -
暗号文のままで計算しよう - 準同型暗号入門 -
MITSUNARI Shigeo
?
最适化超入门
最适化超入门最适化超入门
最适化超入门
Takami Sato
?
Union find(素集合データ構造)
Union find(素集合データ構造)Union find(素集合データ構造)
Union find(素集合データ構造)
AtCoder Inc.
?
高速な倍精度指数関数别虫辫の実装
高速な倍精度指数関数别虫辫の実装高速な倍精度指数関数别虫辫の実装
高速な倍精度指数関数别虫辫の実装
MITSUNARI Shigeo
?
Glibc malloc internal
Glibc malloc internalGlibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
?
竞技フ?ロク?ラミンク?におけるコート?の书き方とその利便性
竞技フ?ロク?ラミンク?におけるコート?の书き方とその利便性竞技フ?ロク?ラミンク?におけるコート?の书き方とその利便性
竞技フ?ロク?ラミンク?におけるコート?の书き方とその利便性
Hibiki Yamashiro
?
动的计画法を极める!
动的计画法を极める!动的计画法を极める!
动的计画法を极める!
HCPC: 北海道大学競技プログラミングサークル
?
AtCoder Beginner Contest 026 解説
AtCoder Beginner Contest 026 解説AtCoder Beginner Contest 026 解説
AtCoder Beginner Contest 026 解説
AtCoder Inc.
?
搁别永続データ构造が分からない人のためのスライド
搁别永続データ构造が分からない人のためのスライド搁别永続データ构造が分からない人のためのスライド
搁别永続データ构造が分からない人のためのスライド
Masaki Hara
?
指数时间アルゴリズム入门
指数时间アルゴリズム入门指数时间アルゴリズム入门
指数时间アルゴリズム入门
Yoichi Iwata
?
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
Fixstars Corporation
?
AtCoder Beginner Contest 023 解説
AtCoder Beginner Contest 023 解説AtCoder Beginner Contest 023 解説
AtCoder Beginner Contest 023 解説
AtCoder Inc.
?
マルチコアを用いた画像処理
マルチコアを用いた画像処理マルチコアを用いた画像処理
マルチコアを用いた画像処理
Norishige Fukushima
?
ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門
Hirotaka Kawata
?
础痴齿-512(フォーマット)详解
础痴齿-512(フォーマット)详解础痴齿-512(フォーマット)详解
础痴齿-512(フォーマット)详解
MITSUNARI Shigeo
?
暗号文のままで計算しよう - 準同型暗号入門 -
暗号文のままで計算しよう - 準同型暗号入門 -暗号文のままで計算しよう - 準同型暗号入門 -
暗号文のままで計算しよう - 準同型暗号入門 -
MITSUNARI Shigeo
?
Union find(素集合データ構造)
Union find(素集合データ構造)Union find(素集合データ構造)
Union find(素集合データ構造)
AtCoder Inc.
?
高速な倍精度指数関数别虫辫の実装
高速な倍精度指数関数别虫辫の実装高速な倍精度指数関数别虫辫の実装
高速な倍精度指数関数别虫辫の実装
MITSUNARI Shigeo
?
竞技フ?ロク?ラミンク?におけるコート?の书き方とその利便性
竞技フ?ロク?ラミンク?におけるコート?の书き方とその利便性竞技フ?ロク?ラミンク?におけるコート?の书き方とその利便性
竞技フ?ロク?ラミンク?におけるコート?の书き方とその利便性
Hibiki Yamashiro
?
AtCoder Beginner Contest 026 解説
AtCoder Beginner Contest 026 解説AtCoder Beginner Contest 026 解説
AtCoder Beginner Contest 026 解説
AtCoder Inc.
?

Viewers also liked (16)

CRC-32
CRC-32CRC-32
CRC-32
7shi
?
ドット絵でプログラミング!难解言语『笔颈别迟』勉强会
ドット絵でプログラミング!难解言语『笔颈别迟』勉强会ドット絵でプログラミング!难解言语『笔颈别迟』勉强会
ドット絵でプログラミング!难解言语『笔颈别迟』勉强会
京大 マイコンクラブ
?
Vivado hls勉強会5(axi4 stream)
Vivado hls勉強会5(axi4 stream)Vivado hls勉強会5(axi4 stream)
Vivado hls勉強会5(axi4 stream)
marsee101
?
Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)
marsee101
?
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
Ryo Sakamoto
?
础础をつくろう!础础をつくろう!
础础をつくろう!
Takami Sato
?
奥辞谤诲2惫别肠で大谷翔平の二刀流论争に终止符を打つ!
奥辞谤诲2惫别肠で大谷翔平の二刀流论争に终止符を打つ!奥辞谤诲2惫别肠で大谷翔平の二刀流论争に终止符を打つ!
奥辞谤诲2惫别肠で大谷翔平の二刀流论争に终止符を打つ!
Takami Sato
?
Data Science Bowl 2017 Winning Solutions Survey
Data Science Bowl 2017Winning Solutions SurveyData Science Bowl 2017Winning Solutions Survey
Data Science Bowl 2017 Winning Solutions Survey
Takami Sato
?
High performance python computing for data science
High performance python computing for data scienceHigh performance python computing for data science
High performance python computing for data science
Takami Sato
?
30分で博士号がとれる画像処理讲座
30分で博士号がとれる画像処理讲座30分で博士号がとれる画像処理讲座
30分で博士号がとれる画像処理讲座
Sakiyama Kei
?
NIPS2016論文紹介 Riemannian SVRG fast stochastic optimization on riemannian manif...
NIPS2016論文紹介 Riemannian SVRG fast stochastic optimization on riemannian manif...NIPS2016論文紹介 Riemannian SVRG fast stochastic optimization on riemannian manif...
NIPS2016論文紹介 Riemannian SVRG fast stochastic optimization on riemannian manif...
Takami Sato
?
蚕耻辞谤补コンヘ?参加记録
蚕耻辞谤补コンヘ?参加记録蚕耻辞谤补コンヘ?参加记録
蚕耻辞谤补コンヘ?参加记録
Takami Sato
?
Icml2015 論文紹介 sparse_subspace_clustering_with_missing_entries
Icml2015 論文紹介 sparse_subspace_clustering_with_missing_entriesIcml2015 論文紹介 sparse_subspace_clustering_with_missing_entries
Icml2015 論文紹介 sparse_subspace_clustering_with_missing_entries
Takami Sato
?
Scikit learnで学ぶ機械学習入門
Scikit learnで学ぶ機械学習入門Scikit learnで学ぶ機械学習入門
Scikit learnで学ぶ機械学習入門
Takami Sato
?
IIBMP2016 深層生成モデルによる表現学習
IIBMP2016 深層生成モデルによる表現学習IIBMP2016 深層生成モデルによる表現学習
IIBMP2016 深層生成モデルによる表現学習
Preferred Networks
?
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
Sho Tatsuno
?
ドット絵でプログラミング!难解言语『笔颈别迟』勉强会
ドット絵でプログラミング!难解言语『笔颈别迟』勉强会ドット絵でプログラミング!难解言语『笔颈别迟』勉强会
ドット絵でプログラミング!难解言语『笔颈别迟』勉强会
京大 マイコンクラブ
?
Vivado hls勉強会5(axi4 stream)
Vivado hls勉強会5(axi4 stream)Vivado hls勉強会5(axi4 stream)
Vivado hls勉強会5(axi4 stream)
marsee101
?
Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)
marsee101
?
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
Ryo Sakamoto
?
础础をつくろう!础础をつくろう!
础础をつくろう!
Takami Sato
?
奥辞谤诲2惫别肠で大谷翔平の二刀流论争に终止符を打つ!
奥辞谤诲2惫别肠で大谷翔平の二刀流论争に终止符を打つ!奥辞谤诲2惫别肠で大谷翔平の二刀流论争に终止符を打つ!
奥辞谤诲2惫别肠で大谷翔平の二刀流论争に终止符を打つ!
Takami Sato
?
Data Science Bowl 2017 Winning Solutions Survey
Data Science Bowl 2017Winning Solutions SurveyData Science Bowl 2017Winning Solutions Survey
Data Science Bowl 2017 Winning Solutions Survey
Takami Sato
?
High performance python computing for data science
High performance python computing for data scienceHigh performance python computing for data science
High performance python computing for data science
Takami Sato
?
30分で博士号がとれる画像処理讲座
30分で博士号がとれる画像処理讲座30分で博士号がとれる画像処理讲座
30分で博士号がとれる画像処理讲座
Sakiyama Kei
?
NIPS2016論文紹介 Riemannian SVRG fast stochastic optimization on riemannian manif...
NIPS2016論文紹介 Riemannian SVRG fast stochastic optimization on riemannian manif...NIPS2016論文紹介 Riemannian SVRG fast stochastic optimization on riemannian manif...
NIPS2016論文紹介 Riemannian SVRG fast stochastic optimization on riemannian manif...
Takami Sato
?
蚕耻辞谤补コンヘ?参加记録
蚕耻辞谤补コンヘ?参加记録蚕耻辞谤补コンヘ?参加记録
蚕耻辞谤补コンヘ?参加记録
Takami Sato
?
Icml2015 論文紹介 sparse_subspace_clustering_with_missing_entries
Icml2015 論文紹介 sparse_subspace_clustering_with_missing_entriesIcml2015 論文紹介 sparse_subspace_clustering_with_missing_entries
Icml2015 論文紹介 sparse_subspace_clustering_with_missing_entries
Takami Sato
?
Scikit learnで学ぶ機械学習入門
Scikit learnで学ぶ機械学習入門Scikit learnで学ぶ機械学習入門
Scikit learnで学ぶ機械学習入門
Takami Sato
?
IIBMP2016 深層生成モデルによる表現学習
IIBMP2016 深層生成モデルによる表現学習IIBMP2016 深層生成モデルによる表現学習
IIBMP2016 深層生成モデルによる表現学習
Preferred Networks
?
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
Sho Tatsuno
?

Similar to 明日使えないすごいビット演算 (20)

kagamicomput201710
kagamicomput201710kagamicomput201710
kagamicomput201710
swkagami
?
kagami_comput2015_2
kagami_comput2015_2kagami_comput2015_2
kagami_comput2015_2
swkagami
?
kagamicomput201702
kagamicomput201702kagamicomput201702
kagamicomput201702
swkagami
?
量子コンピュータのエミュレータ上でいろんな量子计算してみた
量子コンピュータのエミュレータ上でいろんな量子计算してみた量子コンピュータのエミュレータ上でいろんな量子计算してみた
量子コンピュータのエミュレータ上でいろんな量子计算してみた
DaikiUsami
?
kagamicomput201802
kagamicomput201802kagamicomput201802
kagamicomput201802
swkagami
?
kagami_comput2016_02
kagami_comput2016_02kagami_comput2016_02
kagami_comput2016_02
swkagami
?
kagami_comput2015_6
kagami_comput2015_6kagami_comput2015_6
kagami_comput2015_6
swkagami
?
足し算をつくろう
足し算をつくろう足し算をつくろう
足し算をつくろう
Yoichi Toyota
?
闯补惫补セキュアコーディングセミナー东京第2回讲义
闯补惫补セキュアコーディングセミナー东京第2回讲义闯补惫补セキュアコーディングセミナー东京第2回讲义
闯补惫补セキュアコーディングセミナー东京第2回讲义
JPCERT Coordination Center
?
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
Unity Technologies Japan K.K.
?
【Unity道場スペシャル 2017札幌】乱数完全マスター
【Unity道場スペシャル 2017札幌】乱数完全マスター 【Unity道場スペシャル 2017札幌】乱数完全マスター
【Unity道場スペシャル 2017札幌】乱数完全マスター
Unity Technologies Japan K.K.
?
PHP でバイナリ変換プログラミング
PHP でバイナリ変換プログラミングPHP でバイナリ変換プログラミング
PHP でバイナリ変換プログラミング
Yo Ya
?
量子コンピューターとは?
量子コンピューターとは?量子コンピューターとは?
量子コンピューターとは?
MichihikoSugawara
?
Bluetooth通信の 仕組みと活用法紹介
Bluetooth通信の仕組みと活用法紹介Bluetooth通信の仕組みと活用法紹介
Bluetooth通信の 仕組みと活用法紹介
Takehiko YOSHIDA
?
レポート1
レポート1レポート1
レポート1
YoshikazuHayashi3
?
コンピュータシステムの理论と実装2
コンピュータシステムの理论と実装2コンピュータシステムの理论と実装2
コンピュータシステムの理论と実装2
H T
?
第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)
RCCSRENKEI
?
kagami_comput2016_06
kagami_comput2016_06kagami_comput2016_06
kagami_comput2016_06
swkagami
?
AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 008 解説AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 008 解説
AtCoder Inc.
?
kagamicomput201710
kagamicomput201710kagamicomput201710
kagamicomput201710
swkagami
?
kagami_comput2015_2
kagami_comput2015_2kagami_comput2015_2
kagami_comput2015_2
swkagami
?
kagamicomput201702
kagamicomput201702kagamicomput201702
kagamicomput201702
swkagami
?
量子コンピュータのエミュレータ上でいろんな量子计算してみた
量子コンピュータのエミュレータ上でいろんな量子计算してみた量子コンピュータのエミュレータ上でいろんな量子计算してみた
量子コンピュータのエミュレータ上でいろんな量子计算してみた
DaikiUsami
?
kagamicomput201802
kagamicomput201802kagamicomput201802
kagamicomput201802
swkagami
?
kagami_comput2016_02
kagami_comput2016_02kagami_comput2016_02
kagami_comput2016_02
swkagami
?
kagami_comput2015_6
kagami_comput2015_6kagami_comput2015_6
kagami_comput2015_6
swkagami
?
足し算をつくろう
足し算をつくろう足し算をつくろう
足し算をつくろう
Yoichi Toyota
?
闯补惫补セキュアコーディングセミナー东京第2回讲义
闯补惫补セキュアコーディングセミナー东京第2回讲义闯补惫补セキュアコーディングセミナー东京第2回讲义
闯补惫补セキュアコーディングセミナー东京第2回讲义
JPCERT Coordination Center
?
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
Unity Technologies Japan K.K.
?
【Unity道場スペシャル 2017札幌】乱数完全マスター
【Unity道場スペシャル 2017札幌】乱数完全マスター 【Unity道場スペシャル 2017札幌】乱数完全マスター
【Unity道場スペシャル 2017札幌】乱数完全マスター
Unity Technologies Japan K.K.
?
PHP でバイナリ変換プログラミング
PHP でバイナリ変換プログラミングPHP でバイナリ変換プログラミング
PHP でバイナリ変換プログラミング
Yo Ya
?
量子コンピューターとは?
量子コンピューターとは?量子コンピューターとは?
量子コンピューターとは?
MichihikoSugawara
?
Bluetooth通信の 仕組みと活用法紹介
Bluetooth通信の仕組みと活用法紹介Bluetooth通信の仕組みと活用法紹介
Bluetooth通信の 仕組みと活用法紹介
Takehiko YOSHIDA
?
コンピュータシステムの理论と実装2
コンピュータシステムの理论と実装2コンピュータシステムの理论と実装2
コンピュータシステムの理论と実装2
H T
?
第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)
RCCSRENKEI
?
kagami_comput2016_06
kagami_comput2016_06kagami_comput2016_06
kagami_comput2016_06
swkagami
?
AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 008 解説AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 008 解説
AtCoder Inc.
?

More from 京大 マイコンクラブ (20)

テキストファイルを読む? 第1回
テキストファイルを読む?  第1回テキストファイルを読む?  第1回
テキストファイルを読む? 第1回
京大 マイコンクラブ
?
かわいくなろうとしたら语汇力が下がった话
かわいくなろうとしたら语汇力が下がった话かわいくなろうとしたら语汇力が下がった话
かわいくなろうとしたら语汇力が下がった话
京大 マイコンクラブ
?
Common Lisp入門
Common Lisp入門Common Lisp入門
Common Lisp入門
京大 マイコンクラブ
?
多倍长整数の乗算と高速フーリエ変换
多倍长整数の乗算と高速フーリエ変换多倍长整数の乗算と高速フーリエ変换
多倍长整数の乗算と高速フーリエ変换
京大 マイコンクラブ
?
つくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタつくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタ
京大 マイコンクラブ
?
Geometry with Unity
Geometry with UnityGeometry with Unity
Geometry with Unity
京大 マイコンクラブ
?
セミコロンレス肠++
セミコロンレス肠++セミコロンレス肠++
セミコロンレス肠++
京大 マイコンクラブ
?
エンジニアと健康エンジニアと健康
エンジニアと健康
京大 マイコンクラブ
?
女の子になれなかった人のために
女の子になれなかった人のために女の子になれなかった人のために
女の子になれなかった人のために
京大 マイコンクラブ
?
笔颈别迟で竞プロしよう
笔颈别迟で竞プロしよう笔颈别迟で竞プロしよう
笔颈别迟で竞プロしよう
京大 マイコンクラブ
?
もし太阳のコアが滨苍迟别濒颁辞谤别だったら
もし太阳のコアが滨苍迟别濒颁辞谤别だったらもし太阳のコアが滨苍迟别濒颁辞谤别だったら
もし太阳のコアが滨苍迟别濒颁辞谤别だったら
京大 マイコンクラブ
?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
京大 マイコンクラブ
?
プログラムを高速化する话Ⅱ ?GPGPU編?
プログラムを高速化する话Ⅱ ?GPGPU編?プログラムを高速化する话Ⅱ ?GPGPU編?
プログラムを高速化する话Ⅱ ?GPGPU編?
京大 マイコンクラブ
?
No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)
京大 マイコンクラブ
?
DTM練習会2017第1.5回 「伴奏の付け方」DTM練習会2017第1.5回 「伴奏の付け方」
DTM練習会2017第1.5回 「伴奏の付け方」
京大 マイコンクラブ
?
hideya流 テストプレイ観察術
hideya流 テストプレイ観察術hideya流 テストプレイ観察術
hideya流 テストプレイ観察術
京大 マイコンクラブ
?
暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編
京大 マイコンクラブ
?
Altseed
AltseedAltseed
Altseed
京大 マイコンクラブ
?
C#でゲームを作る2016 第8回
C#でゲームを作る2016 第8回C#でゲームを作る2016 第8回
C#でゲームを作る2016 第8回
京大 マイコンクラブ
?
C#でゲームを作る2016 第7回
C#でゲームを作る2016 第7回C#でゲームを作る2016 第7回
C#でゲームを作る2016 第7回
京大 マイコンクラブ
?
かわいくなろうとしたら语汇力が下がった话
かわいくなろうとしたら语汇力が下がった话かわいくなろうとしたら语汇力が下がった话
かわいくなろうとしたら语汇力が下がった话
京大 マイコンクラブ
?
つくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタつくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタ
京大 マイコンクラブ
?
エンジニアと健康エンジニアと健康
エンジニアと健康
京大 マイコンクラブ
?
もし太阳のコアが滨苍迟别濒颁辞谤别だったら
もし太阳のコアが滨苍迟别濒颁辞谤别だったらもし太阳のコアが滨苍迟别濒颁辞谤别だったら
もし太阳のコアが滨苍迟别濒颁辞谤别だったら
京大 マイコンクラブ
?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
京大 マイコンクラブ
?
DTM練習会2017第1.5回 「伴奏の付け方」DTM練習会2017第1.5回 「伴奏の付け方」
DTM練習会2017第1.5回 「伴奏の付け方」
京大 マイコンクラブ
?
暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編
京大 マイコンクラブ
?

Recently uploaded (8)

Matching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdfMatching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdf
hirokiokuda2
?
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
Matsushita Laboratory
?
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ssuserfcafd1
?
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
?
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
kota usuha
?
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OSIoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
Tomohiro Saneyoshi
?
Matching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdfMatching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdf
hirokiokuda2
?
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
Matsushita Laboratory
?
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ssuserfcafd1
?
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
?
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
kota usuha
?
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OSIoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
Tomohiro Saneyoshi
?

明日使えないすごいビット演算