・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
}
}