TL; DR:如何将整数转换为十六进制,以及如何将 1 字符串转换为十六进制(即 'F' -> 0xF )
希望将字符转换为十六进制值,做一些数学运算,然后转换回字符。
所以我有这样的事情:
addBits: aValue move: action
"aValue is always either 5 or 10 (0xA)"
"move is either 'a' for add or 's' for subtract"
|sum conversion|
"self stringToMakeHex is the string, it's always either an 'F', 'A', '0',
or '5' I need to turn it into either 0xF,0xA,0x0,or 0x5"
conversion := (self stringToMakeHex) asInteger.
(action = 's')
ifTrue:[sum:= conversion - aValue.]
ifFalse:[sum:=conversion + aValue.].
stringToMakeHex: (sum asString).
我知道我不应该这样做asInteger
,因为它以某种方式将“F”转换为零,所以我想知道是否有一种很好的方法可以从中获取 0xF 甚至 15。我的另一个问题是aValue 以整数(5 和10 base10)的形式出现,所以我需要一种方法来获取十六进制值0x5 和0xA。
所有这些数据都是通过 TCP/IP 从一个 dif 程序中检索到的,因此我无法控制我收到的格式......我需要发回一个字符串以便通过连接处理通信,这无济于事