IP ADDRESS ANALYSIS
Determine the network prefix and host suffix for an IPV4 address
Version 4 of the Internet Protocol (IP) defines class A, class B, and class
C addresses. The following table shows an example of each of the three
classes of addresses. In the familiar "dotted decimal" notation, each of
the four numerical fields of the address is a non-negative integer not
exceeding 255. In the binary form, each field of the address is expressed
in base 2 as an 8-bit "octet". For example, the number 200, written as
a sum of powers of 2, equals 128+64+8 = 2^7 + 2^6 + 2^3 = 11001000 binary.
Class |
IP address in "dotted decimal" notation |
IP address in binary |
A |
64.200.128.3 |
01000000.11001000.10000000.00000011 |
B |
160.200.128.3 |
10100000.11001000.10000000.00000011 |
C |
202.200.128.3 |
11001010.11001000.10000000.00000011 |
Definitions:
Class A address: The leftmost bit of the leftmost field of the
binary representation is 0.
Class B address: The leftmost two bits of the leftmost field
of the binary representation are 10.
Class C address: The leftmost three bits of the leftmost field
of the binary representation are 110.
Components of a Class A address:
The leftmost bit is used only to identify the type of address, therefore
it is not part of the actual address. The remaining bits of the leftmost
field (in the above example, 1000000) constitute the network prefix (which
identifies a particular subnet within the Internet). The remaining fields
(11001000.10000000.00000011) are concatenated to form the host suffix (which
identifies a particular computer within a subnet).
Therefore, in the above example,
Network prefix = 1000000 binary = 64 decimal
Host Suffix = 110010001000000000000011 binary = 13139971 decimal
Components of a Class B address:
The leftmost two bits are used only to identify the type of address, therefore
they are not part of the actual address. The remaining bits of the leftmost
field (in the above example, 100000), concatenated with the second-leftmost
field (11001000) constitute the network prefix. The remaining fields (10000000.00000011)
are concatenated to form the host suffix.
Therefore, in the above example,
Network prefix = 10000011001000 binary = 8392 decimal
Host Suffix = 1000000000000011 binary = 32771 decimal
Components of a Class C address:
The leftmost three bits are used only to identify the type of address,
therefore they are not part of the actual address. The remaining bits of
the leftmost field (in the above example, 01010), concatenated with the
second- and third-leftmost fields (11001000.10000000) constitute the network
prefix. The remaining field (00000011) forms the host suffix.
Therefore, in the above example,
Network prefix = 010101100100010000000 binary = 706688
Host Suffix = 00000011 binary = 3
INPUT: ip.in
One or more IP-addresses in dotted decimal form, for example,
64.200.128.3
160.200.128.3
-
Each line of the input will contain exactly one IP address.
-
There will be no leading, trailing, or embedded spaces or tabs.
-
Each IP address will contain four numerical fields. Adjacent fields will
be separated by one period ("dot").
-
Each numerical field will be a non-negative integer, not exceeding 255.
OUTPUT: ip.out
Each line of input will give rise to one line of output, containing the
network prefix and host suffix, in the format illustrated by the following
example (which comes from the above input example):
prefix = 64 suffix = 13139971
prefix = 8392 suffix = 32771
Note, in particular, that each numerical quantity is right-justified in
a field of width 9 following the equals sign. Each equals sign is also
preceded by one blank space, and the word "suffix" is preceded by two blank
spaces.