zoukankan      html  css  js  c++  java
  • << >> ~ ^ 运算符

    运算符号:


    ^ 异或

    首先将参与运算的数字表达为二进制(这里采用8位):
    2:00000010
    3:00000011
    上下对齐,逐位进行运算,法则是:
    1异或1=0;0异或0=0;1异或0=1;0异或1=1
    那么2和3的计算结果如下:
    00000010 (2)
    00000011 (3)
    ------------------
    00000001 (1)
    所以2^3 = 1


    << 左移 将操作数按位左移高位被丢弃低位顺序补0

    例:10001010 <<4 也就是左移4位 结果为10100000
    注意:对于有符号的数,左移会丢弃符号位,或者符号位会被更改。

    << 右移 将操作数按位右移低位被丢弃,如果是正数高位顺序补0,如果是负数高位顺序补1
    例:10001010 >>4 也就是右移4位 结果为11111000
    注意:对于有符号的数(int,double)等,右移时,最高位的符号位应该不变,如果以前是正数,符号位是0,那么右移后还应该是0,其他位补0,
    如果以前是负数,符号位是1,那么右移后,符号位还应该是1,其他数补1(因为负数存的补码).对于无符号的数(uint,ushort)等,那不需要关心符号位。

    ~是一个一元运算符,他把操作的数的位取反!

    比如:
    操作数的位 ~的结果位
    1 0
    0 1

    书上是这么说的!

    但是我刚才测试了下:
    发现它的默认值是-2

    所以 int i = 10;
    Response.Write(i+~1);
    页面上显示8

  • 相关阅读:
    关于POST的请求的问题的汇总
    EF关于报错Self referencing loop detected with type的原因以及解决办法
    系统体验设计需注意的地方
    win10文件共享的实现
    idea快速生成实体类Entity
    idea下使用码云插件进行git提交
    漏洞利用-FTP漏洞利用
    metasploit2
    day02-业务服务监控
    day01-系统基础信息模块
  • 原文地址:https://www.cnblogs.com/liuxiaoji/p/4922636.html
Copyright © 2011-2022 走看看