講義メモ

・p.100「練習問題」から再開し、5章「制御文」に進みます。

提出フォロー:ミニ演習 mini098.cs

・double型の変数a、cと、int型の変数bがあるとき、下記の実行後の値に差が出るか確認しよう
① a = b = c = 3.14;
② a = c = b = 3.14;
※ 必要に応じてキャストを行うこと

作成例

//ミニ演習 mini098.cs
using System;
class mini088a
{
    public static void Main()
    {
        double a, c; int b;
        a = b = (int)(c = 3.14); //①「a = b = c = 3.14」だとエラーなのでキャストする
        Console.WriteLine("a:{0} b:{1} c:{2} : ", a, b, c); //3、3、3.14となる
        a = c = b = (int)3.14; //②「a = c = b = 3.14」だとエラーなのでキャストする
        Console.WriteLine("a:{0} b:{1} c:{2} : ", a, b, c); //3、3、3となってしまう
   }
}

p.100 練習問題 ヒント

・10進数cat = 1, rat = 2, dog = 4は2進数にすると001,010,100
・int pet = cat | dog;は、001と100の論理和なので 101になる(10進数5)
・あるビットが1かどうかは、そのビットのみが1である値との論理積で分かり、0でなければ該当する
・よって、
 ① 変数petとcatの論理積が0でなければcatがいる
 ② 変数petとratの論理積が0でなければratがいる
 ③ 変数petとdogの論理積が0でなければdogがいる

作成例

//p.100 練習問題 ex04.cs
using System;
class ex04
{
    public static void Main()
    {
        int cat = 1, rat = 2, dog = 4; //猫、鼠、犬を表すビット列001,010,100
        int pet = cat | dog; //猫と犬を表すビット列101(10進数5)を生成
        Console.WriteLine("猫:{0}", (pet & cat) == cat); //true
        Console.WriteLine("鼠:{0}", (pet & rat) == rat); //false
        Console.WriteLine("犬:{0}", (pet & dog) == dog); //true
   }
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です