MT4智能交易编程教程-逐位运算
补码 补充变量值,表达值包含1,可变值包含0,表达值包含0,可变值包含1。 - char a='a',b;
- b=~a;
- Print("a = ",a, " b = ",b);
- // 结果将会是:
- // a = 97 b = -98
-
复制代码
右移运算符x向右移动到数字y代表二进制代码。如果移动的值是无符号类型,进行逻辑右移,即左侧将被零填满。如果移动的值是符号类型,进行算术右移,即左侧将被符号填满(如果数字是正值,符号为零值;如果数字为负值,符号值为1)。 示例: - char a='a',b='b';
- Print("Before: a = ",a, " b = ",b);
- //--- 右移
- b=a>>1;
- Print("After: a = ",a, " b = ",b);
- // 结果会是:
- // 之前: a = 97 b = 98
- // 以后: a = 97 b = 48
-
复制代码 左移运算符x向左移动到数字y代表二进制代码,即右侧将被零填满。示例: - char a='a',b='b';
- Print("Before: a = ",a, " b = ",b);
- //--- 左移
- b=a<<1;
- Print("After: a = ",a, " b = ",b);
- // 结果会是:
- // 之前: a = 97 b = 98
- // 之后: a = 97 b = -62
复制代码
|