一、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.移位运算符相关推荐

  1. Java 位运算符和移位运算符

    参考: Bitwise and Bit Shift Operators <Java 编程思想 第3章 操作符> 今天学习 Java BitSet 类时,发现对于位运算符和移位运算符的操作有 ...

  2. python 对象的异或运算符_python的运算符

    算数运算符 算数运算符主要用作于计算机的算数运算 种类符号作用+加法.字符串的拼接 -减法 *乘法.字符串的重复 /除法 //地板除(除法) %取余(除法) **幂运算 +# 数字类型的加法运算 pr ...

  3. swift:高级运算符(位运算符、溢出运算符、优先级和结合性、运算符重载函数)...

    swift:高级运算符 http://www.cocoachina.com/ios/20140612/8794.html 除了基本操作符中所讲的运算符,Swift还有许多复杂的高级运算符,包括了C语和 ...

  4. mysql所支持的比较运算符_mysql比较运算符有哪些?Mysql比较运算符详解

    比较运算符可用于比较数字和字符串.今天发一篇Mysql比较运算符详解,希望对初学者有所帮助,虽然现在流行NoSQL,但是MYSQL还是很有用的,数字作为浮点值进行比较,字符串以不区为例进行比较,=运算 ...

  5. 算数运算符与关系运算符_Swift进阶三——运算符相关

    赋值和算数运算符 1,Swift中的赋值运算符(=)不会返回值. 而在OC中,赋值运算符(=)是有返回值的. 如下面的写法: var a = "aaa" var b = " ...

  6. 算数运算符与关系运算符_【Flutter 110】Flutter手把手教程Dart语言——运算符

    运算符 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.Dart语言内置了丰富的运算符,并提供了以下类型的运算符:「算术运算符.关系运算符.类型判断运算符.赋值运算符.逻辑运算符.按位和移位运算 ...

  7. c语言的int型运算符,C语言运算符

    本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! C语言运算符是说明特定操作的符号[1] ,它是构造C语言表达式的工具[2] .C语言的运算异常丰富,除了控制语句和输入输出以外 ...

  8. 【笔记】Java的运算符(赋值运算符号、一元运算符、算术运算符、关系运算符、自增与自减运算符、逻辑运算符、括号运算符、位运算符、三元(三目)运算符)、表达式与语句:简洁表达式

    文章目录 一.运算符 1.赋值运算符号 2.一元运算符 3.算术运算符 4.关系运算符 5.自增与自减运算符 6.逻辑运算符 7.括号运算符 8.位运算符 左移位: 右移位: 9.三元(三目)运算符 ...

  9. MySQL运算符ppt_MySQL常用运算符详解

    MySQL 数据库中的表结构确立后,表中的数据代表的意义就已经确定.而通过 MySQL 运算符进行运算,就可以获取到表结构以外的另一种数据. 例如,学生表中存在一个 birth 字段,这个字段表示学生 ...

  10. c语言 高字节和高字节运算 低字节和低字节运算,C语言关系运算符和位运算符.ppt...

    <C语言关系运算符和位运算符.ppt>由会员分享,可在线阅读,更多相关<C语言关系运算符和位运算符.ppt(42页珍藏版)>请在装配图网上搜索. 1.第3章 关系运算符和位运算 ...

最新文章

  1. basic与python哪个容易胖_减肥看热量还是碳水化合物 脂肪和碳水哪个更容易长胖...
  2. varchar汉字占几个字符_常用字符编码介绍
  3. 论初次修改 Android framework 代码
  4. LeetCode-剑指 Offer 15. 二进制中1的个数
  5. 面对百亿用户数据,日均亿次请求,携程应用架构如何涅槃?
  6. prometheus和grafana、node_exporter监控服务资源
  7. 【Node】node启动过程
  8. 31、SAM文件中flag含义解释工具--转载
  9. 文本数据增强+NER
  10. MySQL 十大常用字符串函数
  11. python模块如何导入解释器_无法从嵌入式解释器导入内置模块(仅限Windows)
  12. Java定义People类
  13. 简单的企业网站后台的实现之流程
  14. 手写一切(updating...)
  15. 2021-2025年中国德国航空公司试剂行业市场供需与战略研究报告
  16. sklearn之KNN详解+GridSearchCV使用方法
  17. Quartus 13.0安装教程
  18. t999主页劫持/篡改木马
  19. 【酸甜苦辣】记迭代一的酸甜苦辣(妍喆篇)
  20. SSLOJ·谷仓的安保【DFS】

热门文章

  1. python request模块下载_python中的Requests模块
  2. java 枚举 映射_java – 如何将值映射到枚举?
  3. python批量制作ppt_实例25_批量生成PPT版荣誉证书
  4. CPU cache侧信道攻击
  5. 手绘线条一直画不直_板绘线条不流畅怎么办?线稿就得这样练!
  6. 账号通过邮箱找回密码功能设计
  7. 应急响应入侵排查之第二篇Linux
  8. java 模板转PDF(合同)详细讲解
  9. 第十二届蓝桥杯 杨辉三角形 Python题解 满分
  10. 张一鸣在字节跳动7周年庆典上的演讲