C++

多倍長整数クラス add sub 命令

C++

足し算と引き算のも作ってみました。 インラインアセンブラだと CF(キャリーフラグ) を取得する方法がすぐには見つからなかった。(尚、ジャンプ命令は使いたくないので jz などの命令は却下)非常に無駄が多いコードになってしまいましたが、足し算引き算は…

多倍長整数クラスの作成 [2日目]

C++

代入演算子の場合は自身を返すことで新たにインスタンスが作られませんが、関係演算子の場合は自身の変数を書き換えずに、計算した結果を自身の型で返す為に、一度インスタンスを作って、計算をしてから return をするのですが、returnの時にコピーコンスト…

多倍長整数クラスの作成

C++

ライブラリがあるだろうと少し探してみましたが、速度に最適化されたものが無さそうなので、自分で作る事にしました。 最低限の機能が実現できればよいので作りは適当です(C++に慣れてないので書き方がまずかったりもするかもです)シフト演算のみ対応させ…

碁盤の表示 + オセロのbit演算

囲碁の場合はどうしたものか・・・・ サンプル様に作成したもの #include <iostream> using namespace std; typedef unsigned long long uint64; const uint64 OUTSIDE_BOARD = 0x1FE0C183060FF; const wchar_t STONES[] = { L'○', L'●' }; const wchar_t BOARDS[] = {</iostream>…

C++のお浚い 3日目

C++

「C++ハンドブック」はほぼほぼ読み終わり、後はサンプルプログラムを少し打ち込んでみた方が良い物が残った状態です。 意外と読むだけでも思い出します。1つ疑問に思ったのが 演算子のオーバーロードの仮想関数化 が出来るかどうか 現在読み進めてる上記の…

避けて来たポインタ型と参照型

C++

すっかり忘れてしまった ポインタ型 と 参照型 のコードを書き置きします。 int num = 10; int* pnum = &num; int& refnum = num; int temp = num; temp = 5; cout << num << endl; // 10 *pnum = 1; cout << num << endl; // 1 refnum = 2; cout << num << …

今週来週はC++の再学習

C++

所有してる以下の本を一通りやってから、TvTest関係のコードを打ち込んでみます。 C++ハンドブック 標準講座C++ Effective C++ 第3版 More Effective C++ Exceptional C++ Style Efficient C++パフォーマンスプログラミングテクニック 上記を一通りやり終え…