2009-10-20 5 views
2

je code comme ceci pour convertir en hexadécimal chaîne d'octetsConvertir octet Chaîne à Int dans le schéma

(define (word->bin s) 
    (let ((n (string->number s))) 
    (bytes (bitwise-and (arithmetic-shift n -24) #xFF) 
    (bitwise-and (arithmetic-shift n -16) #xFF) 
    (bitwise-and (arithmetic-shift n -8) #xFF) 
    (bitwise-and n #xFF)))) 
(word->bin "#x10000002") 

Je pense à une fonction similaire à convertir en binaire des nombres entiers, puis l'imprimer. Le résultat final est le binaire traduit en hexadécimal. Quelques liens utiles: http://download.plt-scheme.org/doc/372/html/mzscheme/mzscheme-Z-H-11.html#node_sec_11.2.1

http://docs.plt-scheme.org/reference/bytestrings.html#(def.((quote.~23~25kernel)._bytes-~3estring/utf-8))

Répondre

4

Je ne suis pas sûr que ce soit ce que vous cherchez, ou même si vous utilisez PLT, mais si vous le faites, alors vous devriez regarder le integer-bytes->integer et integer->integer-bytes fonctions que are included dans PLT. Notez que ceux-ci créent des chaînes d'octets avec le contenu binaire - cela peut donc être différent de ce que vous essayez de faire ici.

(Et si vous utilisez la version 372, alors vous devriez vraiment mettre à jour.)

+0

Merci, je suis surpris les enseignants ne mentionnent pas ce – yuguang

+0

Eh bien, si cela fait partie d'un travail à domicile, votre professeur pourrait vous obliger à écrire une solution. –

Questions connexes