why does the routing rule 0.0.0.0/1 along with 128.0.0.0/1 cover all IPV4 internet addresses

when I encountered these two routing entries defined by OpenVPN, I was puzzled as to its exact meaning. I understand that they are placed there to override the default entry 0.0.0.0/0 because they are more specific. the more explicit a routing entry is the higher its priority. I also know that whether a destination IP address matches a routing entry is determined by the result of its bitwise AND operation with the subnet mask specified in the routing entry. If the result is equal with the network address, the entry will take care of its routing for it. Otherwise, another rule in the routing table will do the same process again and so on.the question is how exactly they come to represent all IP addresses.

0.0.0.0/1 
128.0.0.0/1

But after reading for quite a while, I begin to get a clear idea about them.

0.0.0.0/1 is the CIDR equivalent of 0.0.0.0/128.0.0.0 (128.0.0.0 == 10000000.00000000.00000000.00000000).

you can see 128.0.0.0 actually has only one non-zero bit, therefore the 1 subnet mask

any ip addresses rangin from 0.0.0.0 to 127.255.255.255 match the network address of 0.0.0.0

but addresses starting from 128.0.0.0 doesn't  because their value of the first bit is a non-zero 1, which means that doing bitwise AND operation with subnet mask(128.0.0.0 == 10000000.00000000.00000000.00000000 will result in a mismatch with 128.0.0.0.

take 129.0.0.0 for example

10000001.00000000.00000000.00000000 == 129.0.0.0

10000000.00000000.00000000.00000000 == 128.0.0.0

10000000.00000000.00000000.00000000 == 128.0.0.0 != 0.0.0.0


so that is why 128.0.0.0/128.0.0.0 is needed to take up what 0.0.0.0/1 leaves off.

10000001.00000000.00000000.00000000 == 129.0.0.0

10000000.00000000.00000000.00000000 == 128.0.0.0

10000000.00000000.00000000.00000000 == 128.0.0.0 == 128.0.0.0.