Is there a simple way to convert an integer to hex in Brightscript?
For example, given 255 it would return FF (or some similar form, e.g. 0xFF, 0x0000FF, etc.)
Is there a simple way to convert an integer to hex in Brightscript?
For example, given 255 it would return FF (or some similar form, e.g. 0xFF, 0x0000FF, etc.)
Easiest way, I think, is to go through a byte array.
The following is based on the excellent libRokuDev project, from the file rdByteArray.brs
I’ve modified it to run faster, test before using
' * Convert an integer to a hex string *
function ConvertINTtoHEX(num as integer) as string
return rdINTtoBA(num).toHexString()
end function
' * Convert an integer to a (4 byte) roByteArray *
function fastINTtoBA(num as integer) as object
ba = CreateObject("roByteArray")
ba.setresize(4, false)
i% = num
ba[3] = i%
i% = i% / 256 : ba[2] = i% ' using % auto converts float from division to int
i% = i% / 256 : ba[1] = i% ' then assigning to bytes auto truncates (AND &h0ff)
i% = i% / 256 : ba[0] = i%
return ba
end function
Here’s another way:
function decToHex (dec as integer) as string
hexTab = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"]
hex = ""
while dec > 0
hex = hexTab [dec mod 16] + hex
dec = dec / 16
end while
if hex = "" return "0" else return hex
end function
“MSGreg” wrote:
Easiest way, I think, is to go through a byte array.
Me too
BrightScript Debugger> ba = CreateObject("roByteArray"):ba.push(255):?ba.toHexString()
FF
Troy
Great! Thanks for the answers AND for introducing me to libRokuDev!
Function addOpacityToHexColor(color as String, opacity as float) as String
opacityHex = StrI(Cint(opacity * 255), 16) ' Converting Float / Integer to Hex
return "#" + color + opacityHex
End Function