2009-11-22 14 views
0

J'ai divisé la liste des nombres 1-100 en fichiers de 2 octets. Ensuite, j'ai remarqué que chaque nombre impair btw 11-99 a besoin de 2 fichiers, soit 4 octets, alors que chaque nombre pair btw 11-99 nécessite 1 fichier, 2 octets. Un fichier est suffisant pour les numéros btw 1-10. Vous pouvez confirmer la constatation ci-dessous.Codage US-ASCII avec des nombres impairs et pairs?

Comment pouvez-vous expliquer la constatation?

Qu'est-ce que j'ai fait?

  1. enregistrer des numéros dans un fichier, comme dans VIM:

    :% python -c "pour i dans la plage (1100): print i"

    : w! list_0_100

  2. diviser le fichier 2 octets de fichiers avec le Split-commande GNU Coreutils:

    $ fendu -b2 -d list_0_100

Trouver: Chaque nombre impair entre 11 -99 n'a besoin que de deux fichiers, soit 4 octets. En revanche, chaque nombre pair BTW 11-99 a besoin d'un fichier, soit 2 octets:

$ head x*  

==> x07 <== 
8 

==> x08 <== 
9 

==> x09 <== 
10 

==> x10 <== 

1 
==> x11 <== 

1 

==> x12 <== 
12 

==> x13 <== 

1 
==> x14 <== 
3 

==> x15 <== 
14 
==> x16 <== 

1 
==> x17 <== 
5 

Répondre

3

Chaque numéro supérieur à 9 requiert trois octets (un octet pour chaque chiffre, et un octet pour la nouvelle ligne). L'écriture _ au lieu du caractère de nouvelle ligne (pour la visibilité), vous avez ceci:

10_11_12_13_14 

Après la scission:

10 _1 1_ 12 _1 3_ 14 

Les nombres pairs arrivent à se trouver dans un seul fichier, mais le nombre impair se fendu plus de deux fichiers.

+0

Merci, j'ai confirmé le résultat en ayant un espace supplémentaire avant une liste. Ensuite, chaque nombre impair btw 11-99 a besoin d'un seul fichier, au lieu de 2 fichiers, pas de bits de parité supplémentaires. Résolu. – hhh