3

我想使用位移运算符将一个数字乘以 10。
为了尝试,我初始化了x = 1. 然后我分配x = x<<1 + x<<3.This 打印x = 32
但是当我分配时x = (x<<1) + (x<<3),它打印出来了x = 10

这种差异从何而来?

我正在使用 c++11。


如何在 vb.net 中的两个不同分隔符内获取字符串

至于问题,这甚至可能吗?我正在做这个..

它应该只是“UP”,但由于我的分隔符是 = 它只读取 = ,所以它继续获得第二行,即 DHCP。

这是我的代码..

Private Sub btnSettings_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSettings.Click
    Dim str As String = rtb.Text
    Dim star() As String

        star = str.Split("="c)
        txtIP.Text = star(1)

End Sub

有没有办法可以在不同的分隔符之间获取一个字符串?
例如 = 192.168.254.238 :

4

2 回答 2

10

看看区别:

x = x<<1 + x<<3
x = 1<<1 + 1<<3     // execute 1+1 first
x = 1<<2<<3         // execute 1<<2
x = 4<<3
x = 32

和这个

x = (x<<1) + (x<<3)
x = (1<<1) + (1<<3)
x = 2 + 8
x = 10
于 2013-11-04T07:18:03.653 回答
1

首先计算括号中的表达式。如果没有它们,则在添加之前执行移位操作。

首先,C++ 计算 (x << 1) 等于 2。

然后它评估 (x << 3) 等于 8。

最后,它将它们相加 2 + 8 = 10。

于 2013-11-04T07:21:02.690 回答