文章目录

  • 前言
  • 一、位运算是什么?
  • 二、移位运算符有哪些?
    • 1.左移运算符<<
      • 1.1语法格式
      • 1.2计算过程
      • 1.3数学意义
    • 2.右移运算符>>
      • 2.1 语法格式
      • 2.2 计算过程
      • 2.3 数学意义
    • 补充
  • 总结

前言

在程序设计语言当中,位操作运算符是一个比较少用到的操作符,但是在特殊的时候又能起到很好的作用,因此在这里简单介绍一下位运算符的使用。


提示:以下是本篇文章正文内容,下面案例可供参考

一、位运算是什么?

程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and运算。举个例子,6的二进制是110,11的二进制是1011,那么6 and 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理):
          110
AND 1011
     ———-
         0010 –> 2
由于位运算直接对内存数据进行操作,不需要转成十进制,因此处理速度非常快。

二、移位运算符有哪些?

1.左移运算符<<

按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。

1.1语法格式

需要移位的数字 << 移位的次数
例如: 3 << 2,则是将数字3左移2位

1.2计算过程

3 << 2
  首先把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011,然后把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,最后在低位(右侧)的两个空位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 1100,则转换为十进制是12。

1.3数学意义

在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。

2.右移运算符>>

按二进制形式把所有的数字向右移动对应位移位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数补1。

2.1 语法格式

需要移位的数字 >> 移位的次数
例如11 >> 2,则是将数字11右移2位

2.2 计算过程

11的二进制形式为:0000 0000 0000 0000 0000 0000 0000 1011,然后把低位的最后两个数字移出,因为该数字是正数,所以在高位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 0010。转换为十进制是2。

2.3 数学意义

右移一位相当于除2,右移n位相当于除以2的n次方

补充

6种位操作符的形式与含义如下:
& :按位“与”(AND);
| :按位“或”(OR);
^ :按位“异或”(XOR);
~ :“取反” (NOT);
>> :数据右移;
<< :数据左移;

总结

以上就是今天要讲的内容,本文仅仅简单介绍了两种移位运算符的使用,利用移位运算符进行运算是非常快的,在进行数学运算的时候,如果可以选用移位运算符就尽量选择移位运算。由于移位运算符常常是2的幂次运算,因此常常用于完全二叉树的计算。

移位运算符的介绍与使用相关推荐

  1. 移位运算符(详细介绍)

    移位运算符 左移(<<) 正数:按二进制形式,把所有数字向左移动对应位数,高位移除,低位空位补0 例如12<<2=48 12对应二进制0000 1100 左移两位变成0011 ...

  2. c语言表达式5 gt 3 gt 1,perl运算符使用介绍与简单应用

    perl 5基础教程--运算符 一.算术运算符 :+(加).-(减).*(乘)./(除).**(乘幂).%(取余).-(单目负) (1)乘幂的基数不能为负,如 (-5) ** 2.5 # error: ...

  3. 移位运算符解子集问题--用移位运算符转十进制为二进制

    想直接看十进制转二进制的同学可以跳转: 目录 p.用移位运算符转十进制为二进制 子集是一个数学概念:如果集合A的任意一个元素都是集合B的元素,那么集合A称为集合B的子集. --百度百科 现在给你一个数 ...

  4. c语言中左移右移有什么作用,C语言中左移和右移运算符详细介绍

    搜索热词 C语言中左移和右移运算符详细介绍 左移运算符(< 左移运算符是用来将一个数的各二进制位左移若干位,移动的位数由右操作数指定(右操作数必须是非负值),其右边空出的位用0填补,高位左移溢出 ...

  5. java中的移位运算符

    移位运算符是在数字的二进制形式上进行平移.主要有左移(<<).带符号右移(>>)以及无符号右移(>>>). 左移运算符(<<)的运算规则为:按二进 ...

  6. python左移位运算_python移位运算符

    1,二进制方式 >>> bin( 1)'0b1' >>> bin( 10)'0b1010' >>> a =0b10>>>a2 & ...

  7. java 偏移符号_java中的移位运算符总结

    java中的移位运算符:<>,>>>总结 java中有三种移位运算符 << : 左移运算符,num << 1,相当于num乘以2 >> ...

  8. java中 移位运算_java中关于移位运算符的demo与总结(推荐)

    首先,移位运算符有三种,其操作类型只支持:byte / short / char / int和long五种. << 左移运算符,表示将左边的操作数的二进制数据向左移动*位,移动后空缺位以0 ...

  9. java学习(21):移位运算符

    //移位运算符 public class test{ public static void main(String[] args){ int num=3; //向左移位 System.out.prin ...

  10. =在 java中怎么表示_在Java中各种类型运算符的介绍与其基本使用方式(有具体使用示例)...

    一.算数运算符 基本四则运算符 + - * / %(使用规则简单,正常使用即可) 注意事项: a) int/int 结果还是 int 要保留小数需要使用double来计算 int a = 1; int ...

最新文章

  1. 数据结构 结构的声明 一个结构作为另一个结构的成员 单向链表的实现 双向链表的实现
  2. python 去除字符串里所有标点符号
  3. Spring中Bean的作用域都有哪些?
  4. 推荐系统实战系列(python版).rar_python实战音乐推荐系统
  5. 【渝粤教育】电大中专电商运营实操 (17)作业 题库
  6. 【翻译】What the f*ck JavaScript?(JavaScript你怎么这样啊???)
  7. java转换apk软件_jar软件转安卓apk软件
  8. wamp php不可用_PHPWAMP开启php
  9. java 仓库管理系统源码
  10. node-sass 安装失败,原因总结
  11. Perl读取文件信息
  12. ASTC on Android
  13. 最好最实用的PHP二次开发教程
  14. HTML5期末大作业:动漫A网站设计——动画漫展学习资料电影模板(6页) 网页设计作业 / 动漫网页设计作业,网页设计作业 / 动漫网页设计成品,网页设计作业 / 动漫网页设计成品模板下载
  15. VirtualXposed框架里点权限管理-XPrivacyLua下载安装失败
  16. python plt图片保存emf类型_matplotlib---保存图片出现的问题
  17. 几行CSS让你的页面立体起来
  18. [C#] C#深入浅出4th Edition [2]
  19. 利用Python将选择题、多选题导入Anki
  20. HR直言:这几类求职者不会要!

热门文章

  1. 电磁仿真软件CST2020 下载链接及安装破·解教程笔记
  2. 0055-在OpenCV环境下合成高动态范围图像(HDR)
  3. dreamweaver cs6 连接mysql_dreamweaver cs6连接数据库的具体流程讲述
  4. 认识PASCAL VOC数据集(目标检测)
  5. 《天道》中最智慧的4句话,看懂改变一生
  6. ie html5缓存,ie缓存文件在哪,教您IE浏览器缓存文件在哪
  7. Navicat导入mdf文件(用导入向导)
  8. 利用代码将网站预测蛋白稳定性突变自动化
  9. 第一章 由内而外全面造就自己
  10. linux如何删除非空文件夹_linux删除文件夹命令