« Programming in Objective-C (3) | トップページ | Programming in Objective-C (5) »

2006.08.07

Programming in Objective-C (4)

前回の続きで、今回は第4章「Data Types and Expressions(データ型と式)」。

データ型は基本はCと一緒。 大きな違いはid型というのがあり、一般的なオブジェクトを表すということ。

演算子の方も、Cと一緒。 ビット毎のXORで値の入れ替えができるのは知らなかったのでメモ。

普通、xとyの値(たとえば整数値)を入れ替えるには、もう一つ変数(たとえばtmp)を用意しておいて、以下のように書く。


int tmp;
tmp = x;
x = y;
y = tmp;

以下のようにビット毎のXORを使うと、tmpが不要になる。


x ^= y;
y ^= x;
x ^= y;

つまりは、x XOR y = y XOR xという関係があるので、x XOR y XOR x = x XOR x XOR y = 0 XOR y = yとなるということで。

それから、複素数用に_Complexと_Imaginary、ブール値用に_Boolという型もある。 ためしに複素数を使ったプログラムを書いてみた(これで適切かどうかは不明)。


#import <stdio.h>
#import <complex.h>

int main(void)
{
    _Complex double z, w;
    z = 1.0 + 1.0*I;
    w = -12.0 + 0.15*I;

    printf("z = %f + %fi\n", creal(z), cimag(z));
    printf("w = %f + %fi\n", creal(w), cimag(w));

    z *= w;
    printf("z*w = %f + %fi\n", creal(z), cimag(z));

    return 0;
}

ちなみに実行結果は、次のようになった。


z = 1.000000 + 1.000000i
w = -12.000000 + 0.150000i
z*w = -12.150000 + -11.850000i

|

« Programming in Objective-C (3) | トップページ | Programming in Objective-C (5) »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/11321/11327394

この記事へのトラックバック一覧です: Programming in Objective-C (4):

« Programming in Objective-C (3) | トップページ | Programming in Objective-C (5) »