Roku Developer Program

Join our online forum to talk to Roku developers and fellow channel creators. Ask questions, share tips with the community, and find helpful resources.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
kenbrueck
Visitor

Convert Int to Hex?

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.)
0 Kudos
5 REPLIES 5
MSGreg
Visitor

Re: Convert Int to Hex?

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
0 Kudos
belltown
Roku Guru

Re: Convert Int to Hex?

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
0 Kudos
GPF
Visitor

Re: Convert Int to Hex?

"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
0 Kudos
kenbrueck
Visitor

Re: Convert Int to Hex?

Great! Thanks for the answers AND for introducing me to libRokuDev!
0 Kudos
kartigas
Newbie

Re: Convert Int to Hex?

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
 
0 Kudos