Skip to content

Instantly share code, notes, and snippets.

@yamanetoshi
Created November 11, 2013 07:29
Show Gist options
  • Save yamanetoshi/7409262 to your computer and use it in GitHub Desktop.
Save yamanetoshi/7409262 to your computer and use it in GitHub Desktop.
hex2signed function written in Gauche
(define bit-reversal
(lambda (str)
(let inner ((len (string-length str)) (instr str) (outstr ""))
(if (eq? 0 len)
outstr
(inner (- len 1)
(substring instr 1 (string-length instr))
(string-append outstr
(cond ((string=? (substring instr 0 1) "0") "1")
((string=? (substring instr 0 1) "1") "0"))))))))
(define bit2signed
(lambda (str)
(cond ((string=? "1" (substring str 0 1))
(* -1.0 (+ 1 (string->number (string-append "#b" (bit-reversal (substring str 1 (string-length str))))))))
(else
(* 1.0 (string->number (string-append "#b" (substring str 1 (string-length str)))))))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment