##目次
bit左シフトをbit表記の桁数以上してみる 20/11/4
小数点型変数の値が整数値がチェックする 20/09/20
余りを使う際のテクニック 20/7/15
2進数表記時の1の数を求める 20/7/15
bitsetを用いる時の型のサイズ指定は定数で行う。 20/7/6
2minの目安 2020/6/17
配列などの全要素にある値を代入する 2020/6/16
pythonっぽいfor文の書き方 2020/6/16
##bit左シフトをbit表記の桁数以上してみる 20/11/4
int i = 4;
cout << (i >> 2) << endl; // 1
cout << (i >> 3) << endl; // 0
cout << (i >> 8) << endl; // 0
となった。
つまり、bit表記の桁数以上左シフトをしても0。
(bit表記した時に1を表記しない桁は0で埋められてるから?)
##小数点型変数の値が整数値がチェックする 20/09/20
floor
を使う
double x;
のxの値が整数値かチェックする時は
if(floor(x) == x)
浮動小数点数の値が整数であるかどうかを調べる(C++, Ruby, JS, Go)
##余りを使う際のテクニック 20/7/15
modの性質を使う
合同式の意味とよく使う6つの性質
##2進数表記時の1の数を求める 20/7/15
__builtin_popcount(temp)
関数を用いる。
引数はint(long longとか、doubleとかでもできるかは試してない)
他のbuiltin関数GCCのビルトイン関数メモ
##bitsetを用いる時の型のサイズ指定は定数で行う
bitset<8> bs1(131uL); // 10000011
こんな感じ。
int a = 131uL; bitset<a> s(tmp);
みたいなのはだめ。
bitset
##2minの目安
計算量オーダーの求め方を総整理! 〜 どこから log が出て来るか 〜
##配列の全要素にある値を代入する
std::vector<int> v(5);
// v を 3 の値で埋める
std::fill(v.begin(), v.end(), 3);
##pythonっぽいforの書き方
int ar[] = {1, 2, 3, 4, 5, 6, 7};
for(int x : ar) {
std::cout << x << "\n"; // 1 2 3・・・7 と順に表示される
}