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
| 固定リンク
この記事へのコメントは終了しました。
コメント