我是靠谱客的博主 温暖保温杯,最近开发中收集的这篇文章主要介绍移位运算符的介绍与使用前言一、位运算是什么?二、移位运算符有哪些?总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 前言
  • 一、位运算是什么?
  • 二、移位运算符有哪些?
    • 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的幂次运算,因此常常用于完全二叉树的计算。

最后

以上就是温暖保温杯为你收集整理的移位运算符的介绍与使用前言一、位运算是什么?二、移位运算符有哪些?总结的全部内容,希望文章能够帮你解决移位运算符的介绍与使用前言一、位运算是什么?二、移位运算符有哪些?总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部