microsoft.com has the ip address 18.104.22.168
Since the first number is $23$, this is class A.
Does this mean microsoft owns all the addresses from 22.214.171.124 to 126.96.36.199 ?
The original division and allocation of IP addresses used a system called classful IP addressing. This is the division to which you are referring, in which a class A network would receive all addresses X.0.0.0-X.255.255.255 and have over 16.5 million host addresses. As designated below, the network bits in classful addressing are divided in 8-bit groupings.
The modern internet utilizes an alternative subnetting system called classless inter-domain routing (CIDR) to more efficiently allocate and distribute IPv4 addresses. This technique is based on variable length subnet masking (VLSM) which allows one to set arbitrary-length prefixes and accordingly allow address space to be allocated on bit lengths other than the previous 8 bit boundaries. This allows one to specify the most significant (i.e. network) bits with CIDR notation by notating the prefix by the number of bits designating the network, yielding the host bits by omission. We'll use your example for specific demonstration.
Utilizing ARIN to search the address number, we can see that the IP block in question is not, in fact 188.8.131.52 - 184.108.40.206, but 220.127.116.11 - 18.104.22.168 with a CIDR notation of 22.214.171.124/13. "/13" indicates that the first 13 bits of the IP address are used to specify the network address space and accordingly the remaining 19 bits specify the host space.
We'll convert the Dotted Decimal Notation (DDN) to binary to show how the math works. Keep in mind, binary is base-2, meaning that each bit is an exponentially higher value of 2:
27 26 25 24 23 22 21 20
128 64 32 16 8 4 2 1
Each octet has 8 bits, with 1 signifying that bit in use, 0 signifying it not in use. Any value 00000000 - 11111111 inclusive is valid with 00000000 representing 0 and 11111111 representing 255.
00010111.01100000.00000000.00000000 (126.96.36.199 in DDN) 00000000.00000111.11111111.11111111 + (19 least significant or host bits) 00010111.01100111.11111111.11111111 = (188.8.131.52 in DDN)