00
,01
,10
,11
代表
A
,B
,C
,D
。
假設我有一個字符串,我想表達的,其長度爲5的所有子所以,我可以表達
AAABB
爲0000000101
。
現在,我有一個字符串小號和整數標記這是用來表示小號串。當我添加一個B到子字符串mark = mark < < 2 | 1 我的問題是mark = mark < < 2有什麼區別2 | 1和標記=標記< < 2 + 1
00
,01
,10
,11
代表
A
,B
,C
,D
。
假設我有一個字符串,我想表達的,其長度爲5的所有子所以,我可以表達
AAABB
爲0000000101
。
現在,我有一個字符串小號和整數標記這是用來表示小號串。當我添加一個B到子字符串mark = mark < < 2 | 1 我的問題是mark = mark < < 2有什麼區別2 | 1和標記=標記< < 2 + 1
可能取決於你所使用的語言(請加下一次標籤!),但通常運算符優先級將是:+ < < |
所以你實際上是比較(mark << 2) | 1
和mark << (2+1)
。預計完全不同的結果。
如果您的問題是關於|
(按位或)和+
(加法),那麼我鼓勵您瞭解每個操作符的作用,然後返回一個更具體的問題。
如果你想知道:(mark << 2) | 1
和(mark << 2) + 1
返回相同的結果,因爲左移保證最後一位爲零。
如前所述,它取決於您使用的編程語言或工具以及它們如何對待+。
+
通常主要用作加法,所以如果是二元加法,結果可能會非常不同。例如,(假設8位數字),
01011001 + 000000001 => 01011010
的地方,
01011001 | 00000001 => 01011001
是的,你是對的。不同的結果是由優先級引起的。謝謝! – ygyao