【问题标题】:How to obtain the Least-significant bits of a number如何获得数字的最低有效位
【发布时间】:2019-08-24 16:48:15
【问题描述】:

我想知道是否有可能获得一个数字的最低有效位。

例子:

 uint intValue = Int32.MaxValue;
 uint LSB = intValue & 0x0000FFFF;

来自:

https://www.oreilly.com/library/view/c-cookbook/0596003390/ch01s06.html

但我在 VB.net 中需要这个。

我试过了:

 Dim intValue As UInteger = 39101
 Dim LSB As UInteger = intValue And &HFFFF

有什么想法吗?

【问题讨论】:

  • Dim sum As Integer = 19774 + Convert.ToInt32("0x000000FF", 16) docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/…
  • @VisualVincent 如果您查看我发表评论的时间以及在他进行重大编辑(包括标题更改等)之前帖子的样子,您就会明白为什么我和 daniel hydeman 回答了我们所做的事情。你知道我评论时的标题是“VB.NET:如何将 Hexa 值添加到整数”。
  • @Julien :您的代码所做的是正确的。 39101 的无符号低位字 39101。一个UInteger 等于两个UShorts。 UShort 的最大值是 65535,因此 39101 将毫无问题地适合第一个 UShort。你真正想要达到的目标是什么?如果您能向我们展示一些示例输出,那就太好了。
  • @K.Madden:啊,你说得对。对于那个很抱歉。我没有考虑查看修订历史。当我输入问题时,它在一小时前被问到并且仅在 35 分钟前编辑,所以我认为它不会在那么短的时间内发生如此重大的变化。我很抱歉。
  • @VisualVincent 一点问题都没有!

标签: .net vb.net hex


【解决方案1】:

这应该可以帮助您想象正在发生的事情。它显示了各种面具。查看每个站点的“位”。

    Dim bits As String
    Dim intValue As UInteger = 39101
    Dim LSB As UInteger
    bits = Convert.ToString(intValue, 2).PadLeft(32, "0"c)
    Stop
    LSB = intValue And &HFFFFUI 'keep 16 bits
    bits = Convert.ToString(LSB, 2).PadLeft(32, "0"c)
    Stop
    LSB = intValue And &HFFUI 'keep 8 bits
    bits = Convert.ToString(LSB, 2).PadLeft(32, "0"c)
    Stop
    LSB = intValue And &HFUI 'keep 4 bits
    bits = Convert.ToString(LSB, 2).PadLeft(32, "0"c)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-15
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 2015-05-07
    • 1970-01-01
    • 2016-05-13
    • 1970-01-01
    相关资源
    最近更新 更多