C#入门14~15(重点)

文章详细介绍了位运算符,包括位与(&)、位或(|)、异或(^)、位取反(~)以及左移(<<)和右移(>>)的操作,并通过示例解释了其工作原理。此外,还讲解了三目运算符的基本语法和使用方法,提供了一个基于三目运算符的闰年判断练习。
摘要由CSDN通过智能技术生成

lesson 14  位运算符

//位运算符 主要用数值类型进行计算的
//将数值转换为2进制 再进行位运算
 

知识点一   位与 &

//规则 连接两个数值进行位计算 将数值转为2进制
//对位运算 :有0则0
int a = 1; //001
int b = 5; //101
//      001
// &  101
//      001    = 1
int c = a & b; //1
Console.WriteLine(c);

a = 3; // 011
b = 19; //10011
//      00011
// &   10011
//      00011   = 3
c = a & b; //3
Console.WriteLine(c);

//多个数值进行位运算 没有括号时 从左到右 依次计算
a = 1; //001
b = 5; //101
c = 19; //10011
//     00001
// &  00101
//     00001
// &  10011
//     00001
int d = a & b & c; //1
Console.WriteLine(d);

a = 1; //001
b = 2; //010
Console.WriteLine(a & b); //0
                          //     001
                          // &  010
                          //     000

知识点二  位或  |

// 规则 连接两个数值进行位计算 将数值转为2进制
// 对位运算 :有1则1

a = 1; //001
b = 3; //011
c = a | b;
//    001
// |  011
//    011
Console.WriteLine(c); //3

a = 5; //101
b = 10; //1010
c = 20; //10100
//    00101
// |  01010
//    01111
// |  10100
//    11111    =16+8+4+2+1=31
Console.WriteLine(a | b | c);
 

知识点三   异或   ^

// 规则 连接两个数值进行位计算 将数值转为2进制
// 对位运算 :相同为0 不同为1
a = 1; //001
b = 5; //101
//    001
// ^  101
//    100   =4
c = a ^ b;
Console.WriteLine(c);

a = 10; //1010
b = 11; //1011
c = 4; //100
//    1010
// ^  1011
//    0001
// ^  0100
//    0101   =5
Console.WriteLine(a ^ b ^ c);

知识点四   位取反 ~

// 规则 写在数值前面 将数值转为2进制
// 对位运算 0变1 1变0
a = 5; //0101
//    0000 0000 0000 0000 0000 0000 0000 0101
// ~  1111 1111 1111 1111 1111 1111 1111 1010   =-6
// 反码补码知识
c = ~a;
Console.WriteLine(c);
 

知识点五   左移 <<  和  右移  >>

// 规则 让一个数的2进制数进行左移和右移
// 左移几位 右侧加几个0
a = 5; //101
c = a << 5;  //左移5位,右侧加5个0
// 1位 1010
// 2位 10100
// 3位 101000
// 4位 1010000
// 5位 10100000 = 32 + 128 = 160
Console.WriteLine(c);

// 右移几位 右侧去掉几个数
a = 5; //101
c = a >> 2;
// 1位 10
// 2位 1
Console.WriteLine(c); //1
 

lesson 15  三目运算符

知识点一   基本语法 

//套路 :3个空位 2个符号
//固定语法 :空位     ?空位       :空位;
//关键信息 :bool类型 ? bool类型为真返回内容 :bool类型为假返回内容;
//三目运算符 会有返回值,这个返回值类型必须一致,并且必须使用!
 

知识点二   具体使用

string str = false ? "条件为真" : "条件为假";
Console.WriteLine(str);

int a = 5;
str = a < 1 ? "a小于1" : "a不满足条件";
Console.WriteLine(str);

int i = a > 1 ? 123 : 321;

//第一个空位 始终是结果为bool类型的表达式(bool变量、条件表达式、逻辑运算符表达式
//第二、三个空位 什么表达式都可以(只要保证他们的结果类型是一致的)

bool b = a > 1 ? a > 6 : false;
 

练习

//要求用户输入一个年份,然后判断是不是闰年
//闰年判断条件:
//年份能被400整除
//或者
//年份能被4整除,但不能被100整除
try
{
    Console.WriteLine("请输入一个年份:");
    string str4 = Console.ReadLine();
    int i5 = int.Parse(str4);
    Console.WriteLine((i5 % 400 == 0 || i5 % 4 == 0 && i5 % 100 != 0) ? "该年份为闰年" : "该年份不是闰年");
}
catch
{
    Console.WriteLine("输入错误!");
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值