在c#中,当转换为无符号整数32时,这意味着什么 (uint)Convert.ToInt32(元素[0])

在c#中,当转换为无符号整数32时,这意味着什么 (uint)Convert.ToInt32(元素[0]),c#,C#,我猜你指的是,正如孟古·庞所说,移位通常用于快速乘法和除法。(并且可能由于溢出而导致奇怪的问题)。 我要冒险去猜测你的代码在做什么。 如果元素[0]是字节元素(也就是说,它只包含8位),那么该代码将直接乘以2^24。否则,它将删除24个高阶位,然后乘以2^24。在任何内容中说“this”时,最好的规则是明确表示您所指的内容。你指的是整行代码吗?演员?位移位运算符?数字24?如果您接受了之前一些问题的答案,这会有所帮助。我的代码会获取客户端ip地址,并将其与数据库表中指定的ip范围进行检查。由于无

我猜你指的是,正如孟古·庞所说,移位通常用于快速乘法和除法。(并且可能由于溢出而导致奇怪的问题)。

我要冒险去猜测你的代码在做什么。


如果元素[0]是字节元素(也就是说,它只包含8位),那么该代码将直接乘以2^24。否则,它将删除24个高阶位,然后乘以2^24。

在任何内容中说“this”时,最好的规则是明确表示您所指的内容。你指的是整行代码吗?演员?位移位运算符?数字24?如果您接受了之前一些问题的答案,这会有所帮助。我的代码会获取客户端ip地址,并将其与数据库表中指定的ip范围进行检查。由于无法直接比较ip地址,我将其拆分,使其在数组中有4个元素。在移位位之后,我添加总和并将其与DB中的ip范围进行比较(DB中的ip范围也使用相同的逻辑进行分割)。
(uint)Convert.ToInt32(elements[0]) << 24;
2 << 1
255 << 1