如何在 Windows 10 计算器中将无符号十六进制转换为十进制?

如何在 Windows 10 计算器中将无符号十六进制转换为十进制?

我正在使用 Windows 10 计算器的程序员模式将十六进制转换为十进制。问题是计算器默认为有符号的。

设置为:DWORD

十六进制:A08A 5A52

结果:

十二月:-1601545646

我如何将其设置为无符号值?我发现如果我使用较大的内存值并将其设置为 QWORD,则可以获得无符号值,但如果使用无符号的 32 位值,则会遇到问题。

答案1

我如何将其设置为给出无符号的值?

在 Windows 计算器中,二进制文件以有符号的 2 的补码表示。因此,Windows 计算器不支持无符号的二进制值。

我建议根据您的需要使用不同的计算器程序。

答案2

改用 PowerShell。只需输入0xA08A5A52L,结果就会以十进制形式打印出来。如果你有PowerShell 6.2 或更高版本您也可以使用0xA08A5A52ULLUL后缀分别表示.NET 中的long和类型ulong

PowerShell 演示

目前,Windows 计算器无法处理无符号值,因此您必须使用更宽的类型,即用于 DWORD 值的 QWORD。只有在处理无符号的 64 位值时才会遇到问题。对于 0xA08A5A52,如果您在 DWORD 模式下操作,则需要更改为 QWORD 模式,然后AND对 0xFFFFFFFF 进行按位运算以清除高位,以正确获取无符号值 2693421650


离题了,但事实上,如果你想要一个程序员用的计算器,那么 PowerShell 会更合适,因为它比计算器更通用、更强大。我将展示更多有关如何使用 PowerShell 实现此目的的示例。对于在 .NET(以及固有的 PowerShell)中进行数学运算,存在从低级到高级的数学函数,主要来自.NET 数学类数字命名空间。您将把类 .NET 类型放入 中[],例如[math][system.math]代表Math类(PowerShell 不区分大小写)。除此之外,还有一些其他可能对程序员有用的东西:

  • 按位运算(除移位运算符外,按位运算符均以 开头-b

    [uint64]::MaxValue/3 + (-bnot 20) + (1L -shl 22) + (0x23 -band 0x34)
    
  • 大整数数学:[bigint]::Pow([uint64]::MaxValue, 20)

  • 任意整数和浮点数学表达式

    1.56 + 0.23/[math]::Pow([math]::Sqrt([math]::Log(20) + [math]::Sin([math]::PI/3)), 4)
    
  • 数学十进制类型(128 位):1.23d * 3.45d / 28

  • 数学128 位 整数类型

  • 矩阵四元数飞机向量复杂的... 数学

  • 计算文件或对象大小:使用12.5GB + 5.8MB + 1392KB二进制单位和12.5e9 + 5.8e6 + 1392e3十进制单位的数字后缀(G = 1e9,M = 1e6,K = 1e3)

  • 转换为/从 base64 转换:[Convert]::ToBase64String[Convert]::FromBase64String

  • 约会时间操作。例如,将原始 Epoch 值转换为日期时间,反之亦然

      [datetime]::FromFileTime(0x01d15614cbaee92c)
      [datetime]::ParseExact("08-12-2012","dd-MM-yyyy", `
              [Globalization.CultureInfo]::InvariantCulture) 
    
  • 字符串格式化和进制转换。String.Format.NET 支持将起作用。有关更多信息,请阅读格式化运算符。您还可以进行高级字符串和正则表达式操作。以下是一些示例:

      'somestring'.Substring(4) * 3 -replace 'ings', 'eet'
      '{0:X}' -f (0x12 + 34)
      [convert]::ToString(0x12 + 34, 16)
      'This is an emoji' + [char]::ConvertFromUtf32(0x1F60A)
    
  • 直接的XMLCSVJSON...操纵

  • 直接调用*.SO/*.DLL文件中的函数

  • GUI 编程。以下是小示例剪贴板历史记录应用

    PowerShell 示例

更多信息请阅读

或关注Scripto 博士的博客

相关内容