Gabrie
Gabrie

Reputation: 579

Input HEX as a string

How can I treat a string which is a hexadecimal number as a hexadecimal number? For example, I am loading in a file of hexadecimal numbers but Python is loading the file in as a string. Is it possible to get Powershell to treat the hexadecimal numbers in the file as hexadecimal numbers?

Background: I'm asking the user for a Mac Address and I need to add x numbers to the last block to get the next x Mac addresses. I can split on ":" and get the last block but this is a string containing for example "13", which is not 13 decimal but 13 hex.

Upvotes: 1

Views: 1027

Answers (3)

iRon
iRon

Reputation: 23623

Just the whole MAC address in once by using the PhysicalAddress.Parse(String) Method:

$MAC = 'F0:E1:D2:C3:B4:A5' -Replace '[^0-9a-fA-F]' # remove all the non-Hex characters
[System.Net.NetworkInformation.PhysicalAddress]::Parse($MAC).GetAddressBytes()
240
225
210
195
180
165

Upvotes: 1

Gabrie
Gabrie

Reputation: 579

Solved it by doing it like this:

$MacNr = ([int64]"0x$($MacAddress.Split(":")[5])")
$MacNr ++1
$NewMac = ('{0:X2}' -f $MacNr)

Upvotes: 0

TheJoblessCoder
TheJoblessCoder

Reputation: 79

Try converting it first to an int by casting the variable with the base 16 as the second argument

hex_str = "0xAD4"
hex_int = int(hex_str, 16)

then just add 1 to the result and use

hex(hex_int)

to get the result back to hex format

Upvotes: 1

Related Questions