【问题标题】:How to convert Decimal To Hex using VB?如何使用VB将十进制转换为十六进制?
【发布时间】:2016-03-25 23:41:03
【问题描述】:

我尝试使用此代码将十进制转换为十六进制,但它不起作用。

Dim i As Integer
    Dim x As String = sASC
    i = Convert.ToInt32(x, 16)
    TextBox8.Text = i

这就是我想要交流的。 912,697,583,1065,261,627,53,703,544,697,924,1003,697

【问题讨论】:

  • 这是一个包含用逗号分隔的数字的字符串吗?
  • 是的。我想将它作为十进制转换为十六进制。
  • 首先,您有四位数字组。您的意思是要将每个组转换为十六进制吗?

标签: vb.net visual-studio-2015


【解决方案1】:

你可以在 Linq 中用一行代码实现你的目标

Dim input = "912,697,583,1065,261,627,53,703,544,697,924,1003,697"

Dim result = String.Join(",", input.Split(","c).
                              Select(Function(x) _
                              Convert.ToInt32(x).ToString("X")))
Console.WriteLine(result)

' 390,2B9,247,429,105,273,35,2BF,220,2B9,39C,3EB,2B9

这会将输入字符串中的每个值转换为其等效的十六进制值,并使用逗号分隔符重建字符串

返回基数为 10 的值是(结果来自之前的代码)

Dim result2 = String.Join(",", result.Split(","c).
                          Select(Function(x) _
                          Convert.ToInt32(x, 16).ToString()))
Console.WriteLine(result2)

【讨论】:

  • 谢谢,现在如何从十六进制转换为十进制?达到与上述相同的格式。
  • Convert.ToInt32(value, frombase) 意味着您将相同的逻辑应用于十六进制字符串,但应用指定第二个参数等于 16 的 Convert.ToInt32 重载
  • 我了解@Steve,但我不知道如何在代码中做到这一点,你能给我代码吗?请
  • 谢谢,但是如果没有逗号,这段代码是否有效?我该怎么办?
  • 没有这个代码可以用逗号分割单个数字,如果没有逗号,分割字符串的规则是什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-13
  • 2013-10-08
  • 2011-07-28
  • 1970-01-01
  • 2023-04-06
相关资源
最近更新 更多