M4BASIC - netmask.m4b
Not logged in
REM Calculate network IPv4 netmask from CIDR notation.
REM See also: http://en.wikipedia.org/wiki/CIDR_notation
REM
REM PvE, September 2014 - GPL.
REM
REM gcc -g -o netmask netmask.c -lm -lgc
REM

INTEGER mask, byte

IF argc != 2 THEN
    PRINT "Usage: netmask <value> where value is in the range 1-32.\n"
    END 1
ENDIF

LET mask = VAL(argv[1])
LET byte = 0

PRINT "Netmask is: "

WHILE mask > 8
    PRINT "255."
    INCR byte
    DECR mask, 8
WEND

IF mask > 0 THEN
    PRINT STR(256 - POW(2, 8-mask))
    INCR byte
ENDIF

WHILE byte < 4
    PRINT ".0"
    INCR byte
WEND
NL

Return to M4BASIC