La Modification du registre: Comment calculer la valeur DWord de Valeurs hexadécimales
Je suis en train de faire quelques modifications du registre et je ne suis pas sûr de comprendre comment des valeurs dword sont calculés.
Voici deux exemples:
[HKEY_CURRENT_USER\ControlPanel\Volume]
"Volume"=dword:0xFFFFFFFF ; 0=off, 0xFFFFFFFF=maximum
"Refresh"=dword:493E0 ; every 5 minutes
Pour le volume, comment pourrais-je calculer ce que l'éventail des options si 0xFFFFFFFF est le max? Et pour le "Rafraîchir", si 493E0 est toutes les 5 minutes, comment puis-je comprendre ce que chaque minute ou chaque jour ou chaque heure serait?
C'est un Motorola Symbole MK4000 WinCE 5.0 appareil.
Vous devez vous connecter pour publier un commentaire.
Si vous mettez la calculatrice windows en mode scientifique, vous pouvez convertir entre HEX et régulière DÉCIMAL facilement.
http://scripts.sil.org/cms/scripts/page.php?item_id=HextoDecConversion
EDIT:
Le nombre 0x493E0 est 300000, qui, j'imagine, est le nombre de MILLISECONDES, la diviser par 1000 pour obtenir le nombre de secondes (300), la diviser par 60 pour obtenir le nombre de minutes (5).
Volume est de splt 2. Le mot de poids faible est à gauche et le mot est juste. 0xffff sur un canal correspond à 100% ou "max". 50% est 0x7fff et ainsi de suite. Rappelez-vous qui est rarement linéaire, donc de 50% du volume ne veut pas dire 50% plus fort.
MODIFIER
De clarifier un peu plus loin, le volume est divisé en deux canaux. Je vais supposer que vous voulez le même volume sur chaque.
La formule générale est
[left value] | ([right value << 16])
Voici des exemples:
De 100%, une valeur 0xFFFF sur les deux canaux est ce que vous voulez.
Value = 0xFFFFFFFF == 0xFFFF | (0xFFFF << 16)
De 50%, d'une valeur de 0x7FFF sur les deux canaux (0xffff /2) est ce que vous voulez.
Value = 0x7FFF7FFF == 0x7FFF | (0x7FFF << 16)
Pour 25%, une valeur de 0x3FFF sur les deux canaux (0x7fff /2) est ce que vous voulez.
Value = 0x3FFF3FFF == 0x3FFF | (0x3FFF << 16)