ビット演算スクリプト
JavaScript でビット演算をするスクリプトを作ってみた。 Firefox, Safari, Google Chrome, Opera ではちゃんと動作している。 IE ではシフト演算がおかしくなってしまっている・・・ ビット演算スクリプト JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス posted with amazlet at 09.12…続きを読む
JavaScript でビット演算をするスクリプトを作ってみた。 Firefox, Safari, Google Chrome, Opera ではちゃんと動作している。 IE ではシフト演算がおかしくなってしまっている・・・ ビット演算スクリプト JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス posted with amazlet at 09.12…続きを読む
演習1-19 行に含まれる改行文字を逆転しないように処理する。 #include <stdio.h> #define MAXLINE 1024 /* 入力行の最大長 */ int mygetline(char line[], int maxline); void reverse(int len, char str[]); int main(int argc, char *argv[])…続きを読む
演習1-18 #include <stdio.h> #define MAXLINE 1024 /* 入力行の最大長 */ int mygetline(char line[], int maxline); int delete_tail_blank(int len, char line[]); int main(int argc, char *argv[]) { int len, new…続きを読む
1.9 文字配列 C では文字列は ‘\0’ を終端とする配列で表現する。 文字配列の長さは ‘\0’ の分が含まれる。 演習1-16 問題文の意味がよくわからないのでパス。 演習1-17 #include <stdio.h> #define MAXLINE 1024 /* 入力行の最大長 */ #define OVERLINE 80 /* この数値より長い行を印字 */ int my…続きを読む
1.7 関数 演習1-15 #include <stdio.h> #define LOWER_TEMP 0 #define UPPER_TEMP 300 #define STEP_TEMP 20 float fahr2celsius(float fahr); float celsius2fahr(float celsius); int main(int argc, char *argv…続きを読む
1.6 配列 if (c >= ‘0’ && c <= ‘9’) { ASCIIコードでは、’0′ は 48、’9′ は 57、となるので上記のコードは以下と同じ意味となる。 if (c >= 48 && c <= 57) { c が数字の場合以下のコードの配列の添字は 0 から 9 の範囲の数となる。 ndigit[c-‘0’]; 演習1-…続きを読む
1.5.2 文字のカウント while や for ではループ本体に入る前にテストが行なわれる。 最初からテストに失敗した場合は本体は1度も実行されない。 1.5.3 行数のカウント シングルクオートで囲まれた文字の内部表現を文字定数と呼ぶ。 文字定数は整数を表現する。 ‘A’ は 65 を表わす。 エスケープ文字は文字定数の中でも有効。’\n’ は 10 を表す。 ‘\n’ は1つの文字を表すの…続きを読む
問題5.36 コンパイラは右から左へと被演算子を評価していく。(5.5.3 組み合せの翻訳) 以下は (+ x y) をコンパイルした結果。 被演算子 y の探索が先にきている。 (env) (env proc argl continue val) (assign proc (op lookup-variable-value) (const +) (reg env)) (assign val (o…続きを読む
1.1 手始めに プログラムには main 関数が必要。 演習1-2 #include <stdio.h> int main(int argc, char *argv[]) { printf("hello,\x\n"); return 0; } $ gcc -o ex1-2 ex1-2.c ex1-2.c:13:12: error: \x used with no …続きを読む
なんか vim で *.c のファイルを作るたびにキーワード補完プラグインの neocomplcache のエラーが表示されるなと思ったら、 ~/.neocon/syntax_cache/ に作られた c= ファイルの所有者が root になっていて書き込みが出来なかったためだった。 所有者を変更したらエラーは発生しなくなった。 MacPorts のファイルを sudo vi で修正した時に作られ…続きを読む