移位运算符 java_java.移位运算符
一、java中有三种移位运算符
<< : 左移运算符,num << 1,相当于num乘以2
>> : 右移运算符,num >> 1,相当于num除以2
>>> : 无符号右移,忽略符号位,空位都以0补齐
在移位运算时,byte、short和char类型移位后的结果会变成int类型,对于byte、short、char和int进行移位时,规定实际移动的次数是移动次数和32的余数,也就是移位33次和移位1
次得到的结果相同。移动long型的数值时,规定实际移动的次数是移动次数和64的余数,也就是移动66次和移动2次得到的结果相同。
二、三种移位运算符的移动规则和使用如下所示:
<
语法格式:
需要移位的数字 << 移位的次数
例如: 3 << 2,则是将数字3左移2位
计算过程:
3 << 2
首先把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011,然后把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,最后在低位(右侧)的两个空位补
零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 1100,则转换为十进制是12.数学意义:
在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。
>>>运算规则:按二进制形式把所有的数字向右移动对应巍峨位数,低位移出(舍弃),高位的空位补零。对于正数来说和带符号右移相同,对于负数来说不同。
public classTest {public static voidmain(String[] args) {int number = 10;//原始数二进制
printInfo(number);
number= number << 1;//左移一位
printInfo(number);
number= number >> 1;//右移一位
printInfo(number);
}/*** 输出一个int的二进制数
*@paramnum*/
private static void printInfo(intnum){
System.out.println(Integer.toBinaryString(num));
}
}
运行结果:
1010
10100
1010
对比:
43210 位数
--------
1010 十进制:10 原始数 number
10100 十进制:20 左移一位 number = number << 1;
1010 十进制:10 右移一位 number = number >> 1;
移位运算符 java_java.移位运算符相关推荐
- Java 位运算符和移位运算符
参考: Bitwise and Bit Shift Operators <Java 编程思想 第3章 操作符> 今天学习 Java BitSet 类时,发现对于位运算符和移位运算符的操作有 ...
- python 对象的异或运算符_python的运算符
算数运算符 算数运算符主要用作于计算机的算数运算 种类符号作用+加法.字符串的拼接 -减法 *乘法.字符串的重复 /除法 //地板除(除法) %取余(除法) **幂运算 +# 数字类型的加法运算 pr ...
- swift:高级运算符(位运算符、溢出运算符、优先级和结合性、运算符重载函数)...
swift:高级运算符 http://www.cocoachina.com/ios/20140612/8794.html 除了基本操作符中所讲的运算符,Swift还有许多复杂的高级运算符,包括了C语和 ...
- mysql所支持的比较运算符_mysql比较运算符有哪些?Mysql比较运算符详解
比较运算符可用于比较数字和字符串.今天发一篇Mysql比较运算符详解,希望对初学者有所帮助,虽然现在流行NoSQL,但是MYSQL还是很有用的,数字作为浮点值进行比较,字符串以不区为例进行比较,=运算 ...
- 算数运算符与关系运算符_Swift进阶三——运算符相关
赋值和算数运算符 1,Swift中的赋值运算符(=)不会返回值. 而在OC中,赋值运算符(=)是有返回值的. 如下面的写法: var a = "aaa" var b = " ...
- 算数运算符与关系运算符_【Flutter 110】Flutter手把手教程Dart语言——运算符
运算符 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.Dart语言内置了丰富的运算符,并提供了以下类型的运算符:「算术运算符.关系运算符.类型判断运算符.赋值运算符.逻辑运算符.按位和移位运算 ...
- c语言的int型运算符,C语言运算符
本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! C语言运算符是说明特定操作的符号[1] ,它是构造C语言表达式的工具[2] .C语言的运算异常丰富,除了控制语句和输入输出以外 ...
- 【笔记】Java的运算符(赋值运算符号、一元运算符、算术运算符、关系运算符、自增与自减运算符、逻辑运算符、括号运算符、位运算符、三元(三目)运算符)、表达式与语句:简洁表达式
文章目录 一.运算符 1.赋值运算符号 2.一元运算符 3.算术运算符 4.关系运算符 5.自增与自减运算符 6.逻辑运算符 7.括号运算符 8.位运算符 左移位: 右移位: 9.三元(三目)运算符 ...
- MySQL运算符ppt_MySQL常用运算符详解
MySQL 数据库中的表结构确立后,表中的数据代表的意义就已经确定.而通过 MySQL 运算符进行运算,就可以获取到表结构以外的另一种数据. 例如,学生表中存在一个 birth 字段,这个字段表示学生 ...
- c语言 高字节和高字节运算 低字节和低字节运算,C语言关系运算符和位运算符.ppt...
<C语言关系运算符和位运算符.ppt>由会员分享,可在线阅读,更多相关<C语言关系运算符和位运算符.ppt(42页珍藏版)>请在装配图网上搜索. 1.第3章 关系运算符和位运算 ...
最新文章
- basic与python哪个容易胖_减肥看热量还是碳水化合物 脂肪和碳水哪个更容易长胖...
- varchar汉字占几个字符_常用字符编码介绍
- 论初次修改 Android framework 代码
- LeetCode-剑指 Offer 15. 二进制中1的个数
- 面对百亿用户数据,日均亿次请求,携程应用架构如何涅槃?
- prometheus和grafana、node_exporter监控服务资源
- 【Node】node启动过程
- 31、SAM文件中flag含义解释工具--转载
- 文本数据增强+NER
- MySQL 十大常用字符串函数
- python模块如何导入解释器_无法从嵌入式解释器导入内置模块(仅限Windows)
- Java定义People类
- 简单的企业网站后台的实现之流程
- 手写一切(updating...)
- 2021-2025年中国德国航空公司试剂行业市场供需与战略研究报告
- sklearn之KNN详解+GridSearchCV使用方法
- Quartus 13.0安装教程
- t999主页劫持/篡改木马
- 【酸甜苦辣】记迭代一的酸甜苦辣(妍喆篇)
- SSLOJ·谷仓的安保【DFS】