2017-04-07 219 views
2

我想用'|'之间的区别和 '+' 的位操作

00011011代表

ABCD

假设我有一个字符串,我想表达的,其长度为5的所有子所以,我可以表达

AAABB0000000101

现在,我有一个字符串小号和整数标记这是用来表示小号串。当我添加一个B到子字符串mark = mark < < 2 | 1 我的问题是mark = mark < < 2有什么区别2 | 1标记=标记< < 2 + 1

回答

1

可能取决于你所使用的语言(请加下一次标签!),但通常运算符优先级将是:+ < < |

所以你实际上是比较(mark << 2) | 1mark << (2+1)。预计完全不同的结果。

如果您的问题是关于|(按位或)和+(加法),那么我鼓励您了解每个操作符的作用,然后返回一个更具体的问题。

如果你想知道:(mark << 2) | 1(mark << 2) + 1返回相同的结果,因为左移保证最后一位为零。

+0

是的,你是对的。不同的结果是由优先级引起的。谢谢! – ygyao

0

如前所述,它取决于您使用的编程语言或工具以及它们如何对待+。

+通常主要用作加法,所以如果是二元加法,结果可能会非常不同。例如,(假设8位数字),

01011001 + 000000001 => 01011010

的地方,

01011001 | 00000001 => 01011001 
相关问题