[Dcmlib] feature freeze --> version 1.0

Mathieu Malaterre mathieu.malaterre at kitware.com
Mon Jan 24 15:25:39 CET 2005


jean-michel.rouet at philips.com wrote:
> 
> On 21/01/2005 17:18:20 Mathieu Malaterre wrote:
>  >> Pourquoi ne pas ajouter un nombre aleatoire a la suite des milisecondes,
>  >> ca a de bonne chances que dans la meme miliseconde, tu ne tire pas deux
>  >> fois de suite le meme nombre aléatoire non ?
>  >
>  >J'ai un probleme de taille. Une UID ne peut pas depasser 64 caracteres.
>  >Je code l'UID officiel ITK (=28) + Mac address (=23) + DateTime (=17)
>  >... donc j'ai suis deja a 68 bytes :)
>  >
>  >Je suis entrain de voire comment coder la mac adress sur moins de
>  >caractere, mais c'est un uchar[6], ca se code sur 256^6 = ca marche pas
>  >sur le plateforme 32bits
>  >
>  >Et sinon pour la date je pense sauver qlq bytes en utilisant une
>  >notation plus intelligente que:
>  >
>  >2005 01 21 11 18 30 512
>  >
>  >Mathieu
> 
> pourquoi mac address=23 si c'est 256^6 ? ca fait 6 * 3 caracteres = 18 
>  caracteres non ?

Si tu fais ifconfig (ipconfig /all sur W32): t'obtiens:
HWaddr 00:0C:F1:70:5C:91

Il y a 6 * (2 hexa) = 6 * sizeof(uchar)
Et comme un uchar < 256 on pourrait simplement representer les deux hex 
par un nombre 0 <= i < 256

ce qui donnerait une mac address = 0.123.101.145.70.23

Donc au pire des cas c'est effectivement 3 chiffres * 6 + 5 '.' = 18 + 5 
= 23

La ou ca ce complique c'est qu'on a pas le droit au zero devant un nombre.

Donc 000.123.101.145.70.23 c'est illegale. C'est a dire que si l'on 
enleve les '.' on peut se retrouver a echanger deux mac address 
differentes (vu que les 3 premiers zeros ne seront pas representer).
D'ou -le double- interet de le coder sur un seul nombre entier de 48 bits


> en plus si tu calcules 256^6 = 281474976710656, ca fait 15 caracteres 
> max... bon si tu rajoutes des points pour delimiter les champs c'est sur 
> que tu perd encore un peu de place.
> pour la date tu peux faire YYYDDD ou YYY est l'année sans le 
> millénaire(!) (ici 005), et DDD le numero du jour dans l'année (<366 
> donc 3 chars)
> pour l'heure: 24*60*60=86400 ca tient sur 5 chars au lieu de 6 (c'est 
> gagne petit mais bon).


Pour la date aussi j'ai eu ce genre de remarque sur comp.dicom j'ai pas 
eu le temps de l'implementer (et en plus ITK est en feature freeze)

Mathieu
Ps: je CC dcmlib au cas ou qlqun est interesse sur le pourquoi de la mac 
address




More information about the Dcmlib mailing list