zoukankan      html  css  js  c++  java
  • 15、枚举类型和标志位

    G常规 D十进制 X十六进制
    myControl.Style =?Styles.ShowBorder |?Styles.ShowCaption;??
    这时myControl.Style枚举的值将变成 1+2=3,它的ToString()将变成"Styles.ShowBorder , Styles.ShowCaption"?
    这里我们可以解释为什么第三个值ShowToolbox可以为4,5..而不能为3。也就是说它的值不应该是前几项值的复合值。有一个比较简单的方法就是用2的n次方来依次为每一项赋值,例如 1,2,4,8,16,32,64.....? 原文:https://blog.csdn.net/zhouqinghe24/article/details/8243679

    对于(&,|),运算的对象是位,也就是1/0,叫做位运算符
    理解:0为false,1为true(通用:0表示假,所有非零的数表示真。 ######方便记忆:0,什么都没有骗人的,则为假)
    运算结果只有下列四种情况。
    1 & 1 = 1
    1 & 0 = 0
    0 & 1 = 0
    0 & 0 = 0

    1 | 1 = 1
    1 | 0 = 1
    0 | 1 = 1
    0 | 0 = 0
    &&和&对于他们各自的运算对象来说,结果是一样的。

    enum.ToString("F") //转换为标志字符串 比如Query

    整数在计算机中用二进制的位来表示,C语言提供一些运算符可以直接操作整数中的位,称为位运算,这些运算符的操作数都必须是整型的。
    & 按位与, | 按位或 , ^ 按位异或
    AND (位与&) OR ( 位或| ) XOR ( 位异或^ )
    1 & 1 = 1, 1 | 1 = 1, 1 ^ 1 = 0
    1 & 0 = 0, 1 | 0 = 1, 1 ^ 0 = 1
    0 & 1 = 0, 0 | 1 = 1, 0 ^ 1 = 1
    0 & 0 = 0, 0 | 0 = 0, 0 ^ 0 = 0

    1、位运算

    直接对整数在内存中的二进制位进行操作。程序中的所有数在计算机内存中都是以二进制的形式存储的。例如,2为10, 11为1011,位操作就相当于将对应的二进制数向左移动n位,即在二进制数的右边补0,例如(6<<2)为6二进制为110,向左移动2位11000,6<<2 = 24。

    2、位运算的运算方式

    如上所述,6<<2的计算方式可以为,6*2^2 = 24, 6<<m为6*2^m(6 乘以 2的m次方),其原理是因为计算机内存是二进制,向左移一位,即乘以2,移动m位即相当于乘以m个2。如果想不通,可以拿十进制数想。
    原文:https://blog.csdn.net/xumi13/article/details/62897708

  • 相关阅读:
    A*算法实现 八数码问题
    poj 1077 Eight(bfs,dbfs, A*)
    poj 1729 Jack and Jill (搜索,bfs)
    poj 4105 拯救公主(bfs)
    poj4091The Closest M Points(KD-tree)
    资源整理
    推荐 VS2010入门教程—鸡啄米
    Cstring的使用
    VC 中TEXT、_T、L的区别
    电脑内存和CPU的关系
  • 原文地址:https://www.cnblogs.com/kikyoqiang/p/9880177.html
Copyright © 2011-2022 走看看