演算/演算子



■色々な演算子
演算子 演算 書式 意味
+ 加算 a+b aにbを足す
- 減算 a-b aからbを引く
* 乗算 a*b aとbを掛ける
/ 除算 a/b aをbで割る
% 剰除算 a%b aをbで割った余りを求める
= 代入 a=b bをaに代入
+= 加算と代入 a+=b aにbを足した値をaに代入する(a=a+bと同じ)
-= 減算と代入 a-=b aからbを引いた値をaに代入する(a=a+bと同じ)
*= 乗算と代入 a*=b aにbを掛けた値をaに代入する(a=a*bと同じ)
/= 除算と代入 a/=b aをbで割った値をaに代入する(a=a/bと同じ)
%= 剰余と代入 a%=b aをbで割った余りの値をaに代入する(a=a%bと同じ)


■演算の規則
整数/整数の結果は整数となる
整数/浮動少数の結果は浮動少数となる
浮動少数/浮動少数の結果は浮動少数となる

※これはお決まりなので覚えておきましょう。

<整数/整数のサンプル>
#include <stdio.h>
void main(void)
{
 int a=10,b=4;
 double c;
 c=a/b;
 printf("%f",c);
 getchar();
}

※10/4の結果は2.000000になります。

<整数/浮動少数のサンプル>
#include <stdio.h>
void main(void)
{
 int a=10;
 double b=4,c;
 c=a/b;
 printf("%f",c);
 getchar();
}

※10/4の結果は2.500000になります。

<浮動少数/浮動少数のサンプル>
#include <stdio.h>
void main(void)
{
 double a=10,b=4;
 double c;
 c=a/b;
 printf("%f",c);
 getchar();
}

※10/4の結果は2.500000になります。


■ビット演算子
演算子 使用例 意味
& a & 0xf 下位4bit以外を0にする ビットごとの論理席(AND)
| a | 0xf 下位4bitを1にする ビットごとの論理和(OR)
^ a ^ 0xf 下位4bitを反転する ビットごとの排他的論理和(XOR)
~ ~0 全てのbitを1にする ビットの反転
<< a << 2 aを2bit左シフトする 左シフト
>> a >> 2 aを2bit右シフトする 右シフト

■インクリメント/デクリメント演算子
演算子 使用例 意味
++
前置型  
++i
a=++i
後置型
i++
a=i++

i=i+1
i=i+1の後にa=iを行う

i=i+1
a=iの後にa=i+1を行う

1を加算
--
前置型  
--i
a=--i
後置型
i--
a=i--

i=i-1
i=i-1の後にa=iを行う

i=i-1
a=iの後にa=i-1を行う

1を減算

■条件演算子(3項演算子)
式1 ? 式:式3 式1が真ならば式2、偽ならば式3を式の値とする

<条件演算子のサンプル>

#include <stdio.h>
void main(void)
{
 int a;
 printf("整数を入力しなさい\n");
 scanf("%d",&a);

 ((a%2) ? printf("[%d]は奇数です。\n",a):printf("[%d]は偶数です。\n",a));
 /* 以下の文と同じ意味です。
 if (a%2==0)
  printf("[%d]は偶数です。\n",a);
 else
  printf("[%d]は奇数です。\n",a);
 */

}

■sizeof演算子
sizeof(型名) データ型のサイズを求める

<sizeof演算子のサンプル>
#include <stdio.h>
#include <limits.h> /*CHAR_BIT*/
void main(void)
{
 printf ("------------------------\n");
 printf ("char %d bits\n",CHAR_BIT);
 printf ("------------------------\n");
 printf ("char %d bytes\n",sizeof(char));
 printf ("unsigned char %d bytes\n",sizeof(unsigned char));
 printf ("short %d bytes\n",sizeof(short));
 printf ("unsigned short %d bytes\n",sizeof(unsigned short));
 printf ("int %d bytes\n",sizeof(int));
 printf ("unsigned int %d bytes\n",sizeof(unsigned int));
 printf ("long %d bytes\n",sizeof(long));
 printf ("unsigned long %d bytes\n",sizeof(unsigned long));
 printf ("float %d bytes\n",sizeof(float));
 printf ("double %d bytes\n",sizeof(double));
 printf ("long double %d bytes\n",sizeof(long double));
 printf ("------------------------\n");
 printf ("何かキーを押してください。");
 getchar();
}




Cの基礎のページへ



ホーム PV ランキング