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

6种常见位运算符+异或运算符的使用(加密、解密)

一、位运算符

位运算符进行的是整数与整数之间的运算

1、右移运算符:>>

(1)相当于对整数除以2

(2)举例:

int num = 2;
System.out.println(num >> 1);

2、左移运算符:<<

(1)相当于对整数乘2

(2)举例:

int num = 2;
System.out.println(num << 1);

3、与运算符:&

(1)位与位进行运算时,全1则1,否则为0

(2)举例:

int num = 2;
int num1 = 1;
System.out.println(num & 1);

(3)应用:

判断一个十进制整数的二进制整数某位上为0还是为1

举例:

int num = 1;
int num1 = 4;
if((num & num1)== 1){System.out.println(num + "的对应的二进制数的第2位为1");
}else{System.out.println(num + "的对应的二进制数的第2位为0");
}

 

(4)7FFFFFFF

这是一个十六进制数,表示的十进制数是2147483647,是Integer类型的最大值,与Integer.MAX_VALUE

4、或运算符:|

(1)位与位进行运算时,全0则0,否则为1

(2)举例:

int num = 2;
int num1 = 1;
System.out.println(num | 1);

5、非运算符:~

(1)对每一位都进行0-1反转

(2)举例:

int num = 0;
System.out.println(~ num);

6、异或运算符:^

(1)位与位进行运算时,不同为1,相同为0

(2)举例:

int num = 1;
int num1 = 2;
System.out.println(num ^ num1);

(3)特性:

X^Y^Y=X

(4)应用:

可用于用户密码的加密和解密

(5)典型题目:

只出现一次的数字. - 力扣(LeetCode)


http://www.mrgr.cn/news/35422.html

相关文章:

  • Liblib:简化开发的强大工具
  • LED驱动电路
  • 编译和链接
  • linux网络编程7
  • 进度条QProgressBar
  • 数电学习基础(逻辑门电路+)
  • 失踪人口回归(明天开始继续更新学习内容)
  • 【Linux实践】实验三:LINUX系统的文件操作命令
  • 经典sql题(十一)查找共同好友或相互关注 二
  • 【大数据入门 | Hive】DDL数据定义语言(数据库DataBase)
  • Q必达任务脚本
  • asp.net core日志与异常处理小结
  • vue3开发中易遗漏的常见知识点
  • MySQL 中存储过程参数的设置与使用
  • 代码随想录Day 53|题目:110. 字符串接龙、105.有向图的完全可达性、106. 岛屿的周长
  • Linux下搭建iSCSI共享存储-Tgt
  • 【2024W36】肖恩技术周刊(第 14 期):什么是完美副业?
  • 二叉树进阶oj题【二叉树相关10道oj题的解析和代码实现】
  • 00DSP学习-F28379D学习准备(了解一个工程的构成)
  • 傅里叶变换及其应用笔记