on hexToNum from h given sign:sign script o property hexChrs : "0123456789abcdef" as Unicode text -- TIDs obey AppleScript's case attribute with Unicode. on getHexVal(c) set AppleScript's text item delimiters to c set v to (count text item 1 of hexChrs) if (v is 16) then error "Non-hex character(s)." return v end getHexVal end script set astid to AppleScript's text item delimiters try set h to h as Unicode text -- Speeds up use of TIDs with Unicode 'hexChrs' in o. tell o to set n to getHexVal(character 1 of h) if (sign) and (n > 7) then set n to n - 16 repeat with i from 2 to (count h) tell o to set n to n * 16 + getHexVal(character i of h) end repeat on error msg number errNum set AppleScript's text item delimiters to astid error "hexToNum handler: " & msg number errNum end try set AppleScript's text item delimiters to astid return n end hexToNum