Je dois représenter un nombre n
en utilisant UNIQUEMENT x
bits. Habituellement, je peux choisir la base appropriée et trouver le nombre de chiffres nécessaires. Mais ici, ma contrainte est que je n'ai que «x» bits disponibles. Je peux avoir plus de 1 'x' bits, cependant. J'essaie de comprendre comment les nombres peuvent être représentés dans un système donné comme celui-ci.Comment représenter le nombre n (supposer base 10) en utilisant x bits?
Répondre
Je ne sais pas si j'ai bien compris votre problème, mais en supposant que vous ayez un nombre naturel x qui peut être représenté avec m (par exemple 20 bits), mais vous n'avez que des tableaux de n bits (disons octets, c'est-à-dire des tableaux de 8 bits), la quantité de tableaux dont vous avez besoin est simplement arrondie au nombre naturel suivant. Pour un nombre qui a 20 chiffres au format binaire, ce serait 3 octets.
E.g. si votre numéro est
1001 01101100 10110100,
vous pouvez stocker comme
00001001
01101100
10110100.
Ce que vous avez fait est de
(integer-) diviser votre numéro par 100.000.000 (10^1000, ou 2^8 dans le système décimal), notez le reste, tronquez le résultat
(entier-) dividez le résultat ULT 1. par 100000000, notez le reste, tronquer le résultat
(integer-) diviser le résultat de 2. par 100000000, notez le reste, tronquer le résultat
rien d'intéressant à faire plus parce que le résultat de 3 était 0.
en supposant que nous parlons de nombres naturels ici, le ci-dessus devient dans le système décimal comme celui-ci:
1. 617652/256 = 2412 remainder 180 (10110100 in binary system)
2. 2412/256 = 9 remainder 108 (01101100 in binary system)
3. 9/256 = 0 remainder 9 (00001101 in binary system)
Alors ce que vous faites est
while (number > 0) {
divide number by 2^n
remember remainder
truncate number
}
Restauration du nombre initial est laissé comme un exercice :)
Ceci est en fait un problème qui revient chaque fois que vous voulez traiter un très grand nombre entier sur la ordinateur. Je suppose qu'un bon endroit pour commencer à chercher des informations supplémentaires pourrait être http://en.wikipedia.org/wiki/Positional_notation.
- 1. Nombre de bits requis pour représenter un nombre x
- 2. Conversions de base 10 à base n
- 3. Un algorithme pour convertir un nombre base-10 en un nombre base-N
- 4. Nombre de conversion du système - Base 10 à base x en utilisant des instructions SQL seulement
- 5. Comment représenter un masque de bits en utilisant l'attribut DebuggerDisplay
- 6. Quel est l'équivalent Python de x = (10 <n)? 10: n;
- 7. Comment représenter le nombre comme image?
- 8. compter récursive le nombre de bits requis pour représenter un nombre
- 9. comment représenter `n` comme une série de numéros
- 10. Probabilité d'entiers n bits
- 11. Comment obtenir la somme x^n/n! en prologue?
- 12. comment représenter le nombre hors plage en binaire?
- 13. convertir décimal en base x
- 14. Comment représenter ce CURL en utilisant ASIHTTPRequest?
- 15. Trouver l'exposant n = 2 ** x en utilisant des opérations au niveau du bit [logarithme en base 2 de n]
- 16. Créer X nombre de répertoires en utilisant le script batch
- 17. Comment représenter -0 en binaire
- 18. 64 bits Hexadécimal à la base 10 de conversion
- 19. perl. convertir un nombre binaire 64 bits en nombre décimal
- 20. comment convertir deux octets en un nombre de 16 bits?
- 21. Problème des reines N et Backtracking ~ comment représenter le noeud?
- 22. C# - représenter tableau d'entiers dans le champ de bits
- 23. Comment représenter graphiquement le nombre d'auteurs par page dans MediaWiki?
- 24. nième plus petit nombre avec n bits mis à 1
- 25. Comment générer "h" x n en javascript?
- 26. Comment représenter un nombre avec des nombres donnés en utilisant des opérations arithmétiques?
- 27. Comment générer une table N X N en utilisant des modèles jquery
- 28. Comment diviser un nombre 64 bits en 32 bits haut et 32 bits bas dans VBScript?
- 29. Comment puis-je trouver le nombre de fois où x = x + 1 est exécuté en termes de N?
- 30. Calcul du nombre de lignes avec N ou plus grand nombre de bits