2016-09-01から1ヶ月間の記事一覧

FeliCa/Suicaについて調べた

Suica(FeliCa)がiPhone7とApple Watch series 2に搭載されることになったので、この機会にいろいろ調べてみた。まだ、憶測の域をこえないところはある。 Sony Japan | FeliCa | FeliCaとは | FeliCaって何? SuicaはFelicaに対応した一つのアプリケーショ…

Linuxのブートシーケンスの基礎まとめ

ファームウェア(BIOS or UEFI*1)が マザーボードのROMからメモリにロードされて実行開始し、ハードウェアをスキャン(POST - Power-On Self Test というハードウェアの自己診断を)する [BIOSの場合] プライマリHDDのMBR(先頭のセクタ(512バイト))を見る…

AVL木の更新状況が見たい

AVL木は平衡二分木の一つで、ノードの追加・削除のたびに木の再構成を行い、検索時の計算時間を最小に抑えるようなデータ構造を維持する。木の再構成を行わない場合、最悪の場合には木の片側のみを使ってしまい検索時にO(n)の時間がかかってしまうが、再構成…

Sortアルゴリズムの消費メモリについて(続)

ソートにおいて、ソート対象の配列に対するポインタを操作すれば、各関数の中でソート対象の配列が持つ要素に対するメモリを確保する必要が無くなる。もし、ソート対象の配列の要素の型がポインタよりも小さいサイズであれば、その要素に対するメモリを確保…

いかなる算術演算子も使わずに加算を実現する

という問題を解く。 答えは、ビット演算子をたくみに使って加算を実現する。 つまり、ビット演算子は算術演算子には含まれないので、使っても良い。 具体的には、XORによって各位の加算を実現し、ANDと左シフト演算子によって繰り上げを実現する。 繰り上げ…