Note (Key):
0 = OFF Bit
1 = ON Bit
x = Number of OFF bits
y = Number of ON bits
Alright, the given IP is 12.0.0.0/23
From inspection, the following can be deduced:
Network ID = 12.0.0.0
Mask= /23 = 255.255.254.0 (/23 = 11111111.11111111.11111110.00000000 Convert the bytes into decimals and you'll get 255.255.254.0)
1. 24bits.
Explanation:
Class A addresses use a default mask of 255.0.0.0 . Count the number of bits in the 3bytes (x.0.0.0) we have 24bits (1byte = 8bits)
2. We are subnetting using the /23 mask, thus writing /23 out in binary we get:
11111111.11111111.11111110.00000000
(Count the bits that are off) = 9bits
Thus, we have 9bits left after subnetting.
N.B: x = number of OFF bits = 9
y = number of ON bits = 23 - 8(from the default class A mask)
= 15
3. To get the number of borrowed bits, we compare with the default mask;
/8 = 11111111.00000000.00000000.00000000
/23= 11111111.11111111.11111110.00000000
Now, do a bit wise comparison between the 2-rows. Count the number of bits that are not in pairs (i.e 0/0 or 1/1)
This is equivalent to ( 23 - 8 ) = 15. The 8 is from the default CLASS A mask
Borrowed bits = 15bits
4. Usable host per subnet:
Note that in subnetting, we MUST leave atleast 2bits for host addressing. Why? You should know that the first IP is the default gateway and the last IP is the broadcast for any subnet (Ideal situation). So, the formula to get the number of useable IP is 2^x -2.
2^x - 2
2^9 - 2
= 510 (How did I get the value of x as 9? Look at the solution to question 2 above)
5. How many usable subnets are there?
To get this, we use the formula 2^x :
2^x
2^9 = 512 usable subnets
6. What is the subnet mask written in dotted decimal?
To get this, take the mask /23 and write out '1' 23 times, grouping with dots in every bytes i.e
/23 = 11111111.11111111.11111110.00000000
Now convert each byte to from binary to decimal
/23 = 255.255.254.0 in dotted decimal
7. What is the subnet mask written in hex-decimal?
Similarly as #6 above, I expect u have a knowledge of hexadecimal numbers (0-9, A-F). If not, then do a research on BINARY numbers
/23 = 11111111.11111111.11111110.00000000
= FF.FF.FE.00
8. Network ID for Subnet 731:
To get the network multiplier factor, we take the last byte in the mask (/23 = 11111111.11111111.11111110.00000000 = 255.255.254.0) that is not all OFF bits. This happens to be 254 and then subtract this value from the maximum decimal value of a byte (256) ie.
256 - 254 = 2
Thus, we have our networks as, starting from the base address;
# Network Range Broadcast
1 12.0.2.0 12.0.2.1 - 12.0.3.254 12.0.3.255
2 12.0.4.0 12.0.4.1 - 12.0.5.254 12.0.5.255
3 12.0.6.0 12.0.6.1 - 12.0.7.254 12.0.7.255
.
.
.
.
32766 12.255.252.0 12.255.252.1 - 12.255.253.254 12.255.253.255
Extrapolating to # 731,
731 in binary = 10 1101 1011
We now pick the /23 in binary form for comparison:
/23 = 11111111.11111111.11111110.00000000
write out, from right to left, the 731 in binary starting under the 1st (rightmost) ON bit ('1') in the /23 mask
i.e
11111111.11111111.11111110.00000000
XXXXXXXX.XXXXX101.1011011X.XXXXXXXX
Perform a binary to decimal conversion: (treat the x as a '0')
XXXXX101 = 5
0100000X = 182
thus, the network ID for subnet 731 is
12.5.182.0
9. The broadcast address for subnet 731 is thus:
12.5.183.255 (Follow the logic at the start of the solution to question

10. Usable address for hosts;
12.5.183.1 - 12.5.183.254
If you have any questions about any step, feel free to ask for further clarification. I left the solution to the second one for you to attempt in full.
Cheers