HP Forums
(50g) Decimal IP address to binary octets- HP-50G - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Software Libraries (/forum-10.html)
+--- Forum: General Software Library (/forum-13.html)
+--- Thread: (50g) Decimal IP address to binary octets- HP-50G (/thread-564.html)



(50g) Decimal IP address to binary octets- HP-50G - Dwight Sturrock - 01-29-2014 02:59 AM

For an IP address such as 172.100.254.4 converts to binary with leading zeros- useful for subnetting.

Place the IP address on the stack:

4: 172
3: 100
2: 254
1: 4

Run the program and the result is:

4: "10101100"
3: "01100100"
2: "11111110"
1: "00000100"


<< → a b c d @put the contents of the stack in variables a b c d
<< 97 100 @character codes for the letters: a b c d
FOR N a R→B @convert to binary
→STR @convert to string
‘a’ STO @store the string in a
SIZE 1 – ‘s’ STO @store the size of the string minus 1 in s
a 3 s SUB @truncate the extraneous characters
‘a ‘ STO @store this new string in ‘a’
a SIZE 8 @get the size of ‘a’ and put 8 on the stack
FOR I “0” a + ‘a’ STO @FOR loop will add the number of missing zeros to make
@this an octet
NEXT
a TAIL @truncate the remaining extraneous characters
1 N + CHR OBJ→ @add 1 to the counter value and convert to the next variable (b ,c or d)
‘a’ STO NEXT @store this in ‘a’ and repeat
>> >>