当前位置: 首页 > news >正文

【C#】| 与 及其相关例子

按位或(|)

按位或运算符 | 对两个数的每一位进行比较,如果两个数中至少有一个为 1,则结果位为 1;否则,结果位为0。

  1010  (10 in decimal)
| 1100  (12 in decimal)
------1110  (14 in decimal)

 力扣相关题目——传送门

public class Solution {public string ToLowerCase(string s) {StringBuilder sb = new StringBuilder();foreach(char c in s){char cNew = (int) c >= 65 && (int) c <= 90 ? (char) (c|32) : (char) c ;sb.Append(cNew);}return sb.ToString();}
}
/*
大写字母 A - Z 的 ASCII 码范围为 [65,90]:
小写字母 a - z 的 ASCII 码范围为 [97,122]。
*/

例如,大写字母 A 的 ASCII 码值 65 的二进制表示是0100 0001_{2},与 32 的二进制表示0010 0000_{2}进行或操作后得到0110 0001_{2},这是小写字母 a 的 ASCII 码值 97 的二进制表示。

顺便扩充下知识——明明只有26个字母,为什么大小字母之间是差32而不是26?

按位与(&)

按位与运算符 & 对两个数的每一位进行比较,只有当两个数的对应位都为 1 时,结果位才为 1;否则,结果位为0。

  1010  (10 in decimal)
& 1100  (12 in decimal)
------1000  (8 in decimal)

 力扣相关题目——传送门

public class Solution {public bool IsPowerOfTwo(int n) {// 按位与if (n <= 0){return false;}return (n & (n - 1)) == 0;}
}

如果 n 是 2 的幂次方,当且仅当 n 是正整数,则 n 的二进制表示中仅包含 1 个 1。

因此我们可以考虑使用位运算,将 n 的二进制表示中最低位的那个 1 提取出来,再判断剩余的数值是否为 0 即可。n 与 n - 1进行按位与操作(&)的结果为0,这是因为 n - 1 的二进制表示是 n 的二进制表示中从最低位的1开始到最低位的所有位都翻转。例如,8=1000_{2}7=0111_{2}进行按位与操作的结果是0000_{2},则可以判断 8 是 2 的幂次方,因为剩余的数值为 0 ;又如,9 = 1001_{2}8 = 1000_{2}进行按位与操作的结果是1000_{2},则可以判断 9 不是 2 的幂次方,因为剩余的数值不为 0 。

http://www.lryc.cn/news/405901.html

相关文章:

  • 【数据结构 | 哈希表】一文了解哈希表(散列表)
  • go创建对象数组
  • Golang | Leetcode Golang题解之第278题第一个错误的版本
  • 自动化网络爬虫:如何它成为提升数据收集效率的终极武器?
  • 软件测试---测试需求分析
  • Android11 framework 禁止三方应用通过广播开机自启动-独立方案
  • Node:解决Error: error:0308010C:digital envelope routines::unsupported的解决方法
  • spring boot(学习笔记第十四课)
  • Android 11 Unable to start/bind service
  • 走难而正确的路并持之以恒
  • 规范:Redis规范
  • 比较 WordPress 、 Baklib 和 BetterDocs
  • Redis 哨兵搭建
  • HackTheBox--Knife
  • Linux_实现TCP网络通信
  • 正则表达式与文本三剑客之grep
  • 微信小程序开发:项目程序代码构成
  • 【云原生】Kubernetes微服务Istio:介绍、原理、应用及实战案例
  • 【Docker】Docker-consul容器服务自动发现与注册
  • Go 1.22 remote error: tls: handshake failure
  • 迈向通用人工智能:AGI的到来与社会变革展望
  • 大模型额外篇章三:vercel搭建openai中转服务器
  • 使用 jQuery 中的 this 实例
  • 下载最新版Anaconda、安装、更换源、配置虚拟环境并在vscode中使用
  • 极狐GitLab Git LFS(大文件存储)如何管理?
  • 迭代学习笔记
  • 【安全】系统安全设计规范(DOC完整版)
  • windows常用命令整理
  • 视频处理基础知识1
  • Linux退不出vim编辑模式