算法之美 | 位运算的巧妙奥秘(二) | JAVA中位运算的实际应用
2021/12/23 22:07:42
本文主要是介绍算法之美 | 位运算的巧妙奥秘(二) | JAVA中位运算的实际应用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 前言
- 一、位运算
- 二、位运算的奇思妙用
- 1.将大写字母转换成为小写字母
- 2.位运算表示乘除法
- 3.位运算判断奇偶性
- 4.利用异或交换两数
- 5.正负号交换
前言
传智杯初赛后有感而写,我目前阶段所学习的算法,只是最基础的数学,对于数字和数学公式还是不敏感,在小卡与质数2那道题,解题的思路只有最基础的方法,然而结果是超时,在优化的过程中,发现了位运算的一些巧妙奥秘,谨以此篇文章记载。
一、位运算
关于位运算的符号以及他的一些规则还是有必要去记录一下的(详细记录请见):
名称 | 符号 |
---|---|
按位或 | 丨 |
按位与 | & |
按位非 | ~ |
按位异或 | ^ |
左移 | << |
右移 | >> |
二、位运算的奇思妙用
熟悉以下各种位运算的扩展使用,可能会在你做题的过程中达到意向不到的妙用哦
1.将大写字母转换成为小写字母
public class Main { public static void main(String[] args) { char a='B'; a= (char) (a|' '); System.out.println(a); } }
自己的不官方理解:
运行结果: b 暂时没有理解,下次一定。
2.位运算表示乘除法
public class Main { public static void main(String[] args) { int a=10; //向右 移位 1表示 除以 2 a>>=1; System.out.println("10向右位移 1表示10/2:"+a); //向左位移 1表示乘2 a=10; a<<=1; System.out.println("10向左位移1表示10*2:"+a); } }
不官方理解:
运行结果: 10向右位移 1表示10/2:5 10向左位移1表示10*2:20 优点:运算速度会比乘除快。 理解:暂时只会用
3.位运算判断奇偶性
public class Main { public static void main(String[] args) { int[] arr={1,2,3,4,5,6,7,8,9,0}; for (int i = 0; i < 10; i++) { if((arr[i]& 1)==0){ System.out.println(arr[i]+"是偶数"); }else{ System.out.println(arr[i]+"是奇数"); } } } }
不官方理解:
运行结果: 1是奇数 2是偶数 3是奇数 4是偶数 5是奇数 6是偶数 7是奇数 8是偶数 9是奇数 0是偶数
4.利用异或交换两数
public class Main { public static void main(String[] args) { //不使用介质交换两数 int a=5,b=4; a^=b; b^=a; a^=b; System.out.println("a="+a); System.out.println("b="+b); } }
不官方理解:
运行结果: a=4 b=5 理解: 暂时没有
5.正负号交换
public class Main { public static void main(String[] args) { int a=3; a=~a+1; System.out.println(a); } }
不官方理解:
运行结果: -3 理解: 暂时没有。
这篇关于算法之美 | 位运算的巧妙奥秘(二) | JAVA中位运算的实际应用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24怎么修改Kafka的JVM参数?-icode9专业技术文章分享
- 2024-12-23线下车企门店如何实现线上线下融合?
- 2024-12-23鸿蒙Next ArkTS编程规范总结
- 2024-12-23物流团队冬至高效运转,哪款办公软件可助力风险评估?
- 2024-12-23优化库存,提升效率:医药企业如何借助看板软件实现仓库智能化
- 2024-12-23项目管理零负担!轻量化看板工具如何助力团队协作
- 2024-12-23电商活动复盘,为何是团队成长的核心环节?
- 2024-12-23鸿蒙Next ArkTS高性能编程实战
- 2024-12-23数据驱动:电商复盘从基础到进阶!
- 2024-12-23从数据到客户:跨境电商如何通过销售跟踪工具提升营销精准度?