演習2-7 K&R プログラミング言語C
演習2-7 /* * x : 62 => 0011 1110 * p : 6 * n : 3 * * x反転 => 1100 0001 * mask => 0111 0000 * vmask => 1000 1111 * * x vmasked => 0000 1110 * x反転 masked => 0100 0000 * OR * => 0100 11…続きを読む
演習2-7 /* * x : 62 => 0011 1110 * p : 6 * n : 3 * * x反転 => 1100 0001 * mask => 0111 0000 * vmask => 1000 1111 * * x vmasked => 0000 1110 * x反転 masked => 0100 0000 * OR * => 0100 11…続きを読む
演習2-6 問題文の日本語がちょっとわかりにくいが、以下のように動作する関数 setbits を作る。 #include <stdio.h> unsigned setbits(unsigned x, int p, int n, unsigned y); int main(int argc, char *argv[]) { unsigned int x, y; int p, n; x =…続きを読む
& (AND) 共に 1 の場合 1 どちらか一方、または両方が 0 の場合 0 | (OR) 共に 0 の場合 0 どちらか一方、または両方が 1 の場合 1 ^ (XOR) 共に同じ値の場合 0 異なる値の場合 1 << (Left Shift) 各ビットを左に指定したビット数だけ移動 右のはみ出したビットは 0 になる >> (Right Shift) 各ビットを右に…続きを読む
インクリメント(及びデクリメント)演算子の前置と後置の違い。 #include <stdio.h> int main(int argc, char *argv[]) { int i, j; i = j = 10; printf("i++ => %d\n", i++); /* 印字してからインクリメント */ printf("++j => %d\…続きを読む
2.7 型変換 math.h をインクルードしているにもかかわらず、以下のようなエラーメッセージが表示されてコンパイルできない場合は、gcc に -lm オプションを付けて手動リンクさせる必要がある。 $ gcc -Wall -o cast cast.c /tmp/cceQkYQw.o: In function `main’: cast.c:(.text+0x41): undefined refe…続きを読む
演習2-2 for (i=0; i<lim-1 && (c=getchar()) != ‘\n’ && c != eof; ++i) s[i] = c; 上記の for ループと等価なループを && と || を使わずに書く。 ループに while を使った方がよかったかな。 for (i=0; i<lim-1; ++i) { if ((c = getc…続きを読む
"Latest topics > カード配り問題 – outsider reflex" や "10分プログラミング – hogehoge" を見て、自分も "10分でコーディング|プログラミングに自信があるやつこい!!" をやってみた。 カード枚数が足りない場合を考えていたら20分かかってしまった・・・ var d…続きを読む
2.3 定数 #include <stdio.h> int main(int argc, char *argv[]) { printf("%d\n", 1234); /* 整数定数 */ printf("%ld\n", 1234L); /* long 定数 */ printf("%d\n", 12345678901234567…続きを読む
2.2 データ型とサイズ C言語の基本的なデータ型 型名 型の内容 char 1byteの文字1つを保持できる。 int 整数、計算機が最も自然に扱える整数のサイズ float 単精度浮動小数点数 double 倍精度浮動小数点数 int には short と long の修飾子を適用できる。 short int si; long int li; /* int は省略可能 */ short sj;…続きを読む
Vim のキーワード補完プラグイン neocomplcache を有効にした状態で暗号化したファイルを扱うと、 ~/.neocon/buffer_cache に一部の文字列がキーワードとして平文で保存されてしまうのでキャッシュしないように設定する。 .vimrc に記述する g:NeoComplCache_CachingDisablePattern オプションにバッファ名パターンを指定するとよい。…続きを読む