fc2ブログ

2024.11 «  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - - - - » 2025.01
TOP > CATEGORY > MATZ

TOP

1バイトで符号付き整数を表す 

2009年10月12日 ()
混乱しそうだったのでメモ書きです。(特に-128絡み)

1byteはいわずと知れた8bitsです。

つまりは0か1が8個連なった2進数です。00000000みたいな。

この1byteで表せる符号付き整数は-128~127という範囲内です。

上位1ビットから下位8ビットの数の割り当ては以下の通り

[1] -128
[2] 64
[3] 32
[4] 16
[5] 8
[6] 4
[7] 2
[8] 1


2進数で

10010111

の場合は、

(1 x -128) +
(0 x 64) +
(0 x 32) +
(1 x 16) +
(0 x 8) +
(1 x 4) +
(1 x 2) +
(1 x 1)

つまりは

-128 + 16 + 4 + 2 + 1

だから

10進数では

-105



1~127に限っては、ビット反転して1を足せば絶対値が同じ負の数に変換できます。


00000010 #これは2です
↓ ビット反転する
11111101
↓ 1を足す
11111110 #これが-2です



ビット同士の足し算(注:OR演算ではない)を行えば10進数で足した結果と同じになります。

 10010111 (-105)
+00101100 (44)
----------------
 11000011 (-61)



てな感じ。

【広告】

[2009.10.12(Mon) 22:04] MATZTrackback(0) | Comments(0) 見る▼
↑TOPへ

MATZ コードの世界を読んで【第2章 オブジェクトについて】 

2009年08月17日 ()
まつもとゆきひろ コードの世界~スーパー・プログラマになる14の思考法

オブジェクト指向は人類の歴史から見れば比較的新しい概念ではあるものの、コンピュータの進化が早いためもう古いというか一般に広く知れ渡った概念かと思います。

この章で印象に残ったのは、オブジェクトは必ずしも現実世界の「モノ」を表すわけではない、ということと、method_missingでした。

(他の内容は脳がバッファオーバーフローになりそうなので自分の記憶に残しませんでしたorz)

method_missing の動作を確かめたくて以下のようなコードで遊んでみました。

class Class1
    def method_missing(m, *args)
        puts "method '#{m.to_s}' for class '#{self.class}' is not defined"
    end
end

class1 = Class1.new
class1.undefined_method



なんかマンスイーパーの爆弾のところを method_missing に該当させるような1メソッドが1マスを表す変態クラスを作ってみたくなりました。

【広告】

[2009.08.17(Mon) 13:20] MATZTrackback(0) | Comments(0) 見る▼
↑TOPへ

MATZ コードの世界を読んで【第1章 私はなぜRubyを開発したのか】 

2009年08月10日 ()
まつもとゆきひろ コードの世界~スーパー・プログラマになる14の思考法

夏休みまっただ中!と言うわけで衝動買いしたMATZさんの本の読書感想文でも書いてみようかな、と思いました。


確かに書いていて気持ちいいプログラミング言語って人によって違ってくる訳で、ガチッガチがいいのよ!って人はLLじゃなくてC++とかJavaとかになるのかも、と思います。

結城浩さんもJavaぐらいのコードの長さがちょうどいい、とおっしゃってましたし。Rubyぐらいスッキリすると、結城さんはタイピングが速いため、物足りないそうです。

私は・・・ものぐさなので ruby の方が指を動かさなくて済むので好きです。

理想としては、start() と一行だけ書けば私の思い描いていたアルゴリズムを私の脳内から引っ張ってきて実行してくれる言語を希望します。

MATZさんは、何故自分がプログラミング言語がこんなに好きなのか分からないともおっしゃってましたが、私にもやはりなぜこんなに好きなの?という分野がありまして、それを仕事に出来たら素敵だなあと思います。

【広告】

[2009.08.10(Mon) 21:20] MATZTrackback(0) | Comments(0) 見る▼
↑TOPへ

TOP