• c#二进制移位运算符 "<<"及">>","&","|","^"


    移位运算符
    & :按位与,其实与&&逻辑运算符有一致的地方:
    | :按位或,同样与||有类似的地方。
    ~:按位取反
    ^:按位异或
    <<:左移运算符
    >>:右移运算符
     
      1.“<<”和“>>”运算符用于执行移位运算,分别称为左移位运算符和右移位运算符。对于X<<N和X>>N形式的运算,含义是将X向左或向右移动N位,得到的结果的类型与X相同。此处,X的类型只能是int,uint、long或ulong,N的类型只能是int,N的类型只能是int,或者显示转换为这些类型之一,否则编译程序时会出现错误。
    注意:如果第一个操作数是int或uint(32位数),则移位数有第二个操作数的低5位给出(原因是:低5位可表示的数的范围是0~24+23+22+21+20,即0~31,足够一个       32位数移位使用),如果第一个操作数是long或ulong(64位数),则移位数由第二个操作数的低6位给出(原因同上)。在左移时,第一个操作数的高序位被放弃,低序空位用0填充。移位操作从不导致溢出。
    举例:
    int值: 128
    128转二进制为:1000 0000  
    当执行 128>>6时, 二进制首位向右移位6位:1000 0000 -> 0000 0010  ,0000 0010转十进制等于2,所以128>>6的值为:2
    同理,128<<6时,二进制首位向左偏移6位:1000 0000 ->10 0000 0000 0000 ,10 0000 0000 0000转十进制等于8192,所以128<<6的值为:8192
     
        2."&" 运算符会对二进制相同位置上面的0和1进行对比,当相同位置数字相同时就返回这个相同的数,否则就返回0,是不是和&&运算符判断两个bool 一致则返回True,否则返回False类似。
        举例:
        int值:96,127
        96&127运算结果是96,如何计算的看下面讲解:   
        96转二进制:  01100000 
        128转二进制:01111111
        用&运算符计算结果:11000000 转十进制=96
     
        3.“|”运算符 的运算方式和"&"运算符判断方式是一样的,只是返回的结果不一样, | 运算符判断两个二进制相同位置的0和1,只要其中一个位置的数字是1就返回1
        举例:
        int值:96,127
        96 | 127运算结果是127,如何计算的看下面讲解:   
        96转二进制:  01100000 
        127转二进制:01111111
        用|运算符计算结果:01111111 转十进制=127
        
        4.“^”运算符 的运算方式是判断位置上面相同的数字时,如果两个数相同,不论是0还是1都返回0,如果其中一个为1就返回1.而 | 是只要有一个只要位置上一个为1就返回1,所以名字叫异或(不同的返回或)。
         举例:
        int值:96,127
        96 ^127运算结果是31,如何计算的看下面讲解:   
        96转二进制:  01100000 
        128转二进制:01111111
        31转二进制:  00011111
        用^运算符计算结果:00011111转十进制=31
     
       
  • 相关阅读:
    Linux命令行和Shell高效率使用方法
    PHP导出word,CVS,PDF
    PHP的CLI综合
    [PHP]算法-二叉树中和为某一值的路径的PHP实现
    [PHP]算法- 判断是否为二叉搜索树的后序遍历序列的PHP实现
    [PHP]算法- 二叉树的深度的PHP实现
    [PHP] 算法-镜像二叉树的PHP实现
    [PHP] 算法-二叉树的子结构判断的PHP实现
    [PHP] 算法-邻接矩阵图的广度和深度优先遍历的PHP实现
    [PHP] 算法-根据前序和中序遍历结果重建二叉树的PHP实现
  • 原文地址:https://www.cnblogs.com/innershare/p/10621760.html
Copyright © 2020-2023  润新知