zoukankan      html  css  js  c++  java
  • c 基础 -位计算

     

    1.十进制转二进制:67=2的6次方 + 2 + 1,即1+000000+1*2的1次方 + 1*2的0次方 =100000011

    2.n位二进制的取值范围:0 ~2的n次方 -1     eg 101,:110,011,

    3.二级制之间的一些计算:

      a.按位与 “&”

        规则:两个二进制位都是1,那么就给是1,否则结果是0

        作用:可以精确的判对比二进制位,只和1作对比就可以了,可以判断奇偶性(x位与1结果为1,那么x是奇数,结果为0,x是偶数)

        eg.   00101

            10100

           ---------------------

            00100

      b.按位或 “|”

        规则:两个二进制位只要有一个是1,那么结果就是1

        eg. 00101 | 10100  结果是:10101

      c.按位异或 “^”

        规则: 两个二进制位不相同,结果为1,否则结果是0

        结论:相同的两个是异或,结果为0

             异或可以交换 9^5^6=9^6^5

             任何数值跟0异或,结果还是原来的数,9^0=9

        综合应用:a ^ b ^ a=b

        eg.   00101 ^  10100  结果是:10001

      d.按位取反 “~”

        规则:一个二进制位上取反

        eg. ~10100 = 01011

      e.左移  “<<”

        规则:二进制位向左移 n 位,高位舍去,低位0补齐,

        结论:a << n ,结果是a*2的n次方

        作用:用于计算次方,性能比直接循环乘的方式好

      f.右移 “>>”

        规则:符号位不变,其它位向右移,舍去低位,一般用符号位值补齐高位

        结论:a >> n ,结果是:a除以2的n次方

  • 相关阅读:
    变量、内存区域、MDK文件(map、htm)
    全双工与半双工的区别
    4G网络 LTE、 FDD 和TD网络格式区别
    国内4G频段划分
    Nordic老版官网介绍(2018-11-30停止更新)
    无线通信模组产业链及竞争格局分析
    LBS 与 GPS 定位之间的区别
    99%的人都理解错了HTTP中GET与POST的区别(转自知乎)
    goto 的用法
    C语言字节对齐 __align(),__attribute((aligned (n))),#pragma pack(n)
  • 原文地址:https://www.cnblogs.com/hui1107464497/p/4526274.html
Copyright © 2011-2022 走看看