注册表编辑:如何计算DWord十六进制值

时间:2011-09-30 18:19:12

标签: registry hex windows-ce dword

我正在尝试进行一些注册表编辑,但我不确定我是否理解如何计算特定的dword值。

以下是两个例子:

 [HKEY_CURRENT_USER\ControlPanel\Volume]
 "Volume"=dword:0xFFFFFFFF ; 0=off, 0xFFFFFFFF=maximum

 "Refresh"=dword:493E0 ; every 5 minutes

对于音量,如果0xFFFFFFFF是最大值,我将如何计算选项范围?而对于“刷新”,如果493E0是每5分钟一次,我该如何计算出每分钟,每天或每小时会是什么?

这是Motorola Symbol MK4000 WinCE 5.0设备。

2 个答案:

答案 0 :(得分:2)

音量分为2 The low word is left and the high word is right。通道上的0xffff对应于100%或“max”。 50%是0x7fff,依此类推。请记住,这也很少是线性的,所以50%的体积并不意味着50%的声音。

修改

为了进一步澄清,音量分为两个通道。我假设你想要每个都有相同的音量。

通用公式为[left value] | ([right value << 16])

以下是示例:

对于100%,两个通道的值为0xFFFF就是你想要的 Value = 0xFFFFFFFF == 0xFFFF | (0xFFFF << 16)

对于50%,两个通道(0xffff / 2)的值为0x7FFF是你想要的。
Value = 0x7FFF7FFF == 0x7FFF | (0x7FFF << 16)

对于25%,两个通道(0x7fff / 2)的值为0x3FFF是你想要的。
Value = 0x3FFF3FFF == 0x3FFF | (0x3FFF << 16)

答案 1 :(得分:0)

如果您将Windows计算器置于科学模式,您可以轻松地在HEX和常规DECIMAL之间进行转换。

http://scripts.sil.org/cms/scripts/page.php?item_id=HextoDecConversion

编辑: 数字0x493E0是300000,我想是MILLISECONDS的数量,除以1000得到秒数(300),除以60得到分钟数(5)。