Acontece que a ISO/IEC definiu prefixos utilizando potência decimal, ao invés da potência binária que era utilizada até então. E definiou novas nomenclaturas também:
Ou seja, antigamente tínhamos que 1 MB(MegaByte) = 1024 KB(KiloByte) que era o padrão JEDEC da década de 90.
No padrão atual, da IEC, dividiu e agora na potência binária lê-se: 1 MiB(MebiByte) = 1024 KiB(KibiByte)
Já na atual forma de leitura, com potência decimal fica assim: 1 MB(MegaByte) = 1000 KB(KiloByte).
Dessa forma, segundo o IEC, tem essa unidade de medida até YB(YottaByte) e YiB(YobiByte).
No meu caso, utilizo Ubuntu, e na imagem abaixo fica evidente que atualmente ele trabalha com o padrão atual de unidade de medida com potência decimal:
Nesse caso, são 5.010.270 Bytes que divididos por 1000 = 5010,27 KiloBytes que dividido novamente por 1000 = 5,01027 MegaBytes, onde arrendodado ficou 5,0 MB.
Se não me engano, no Microsoft Windows ainda trabalha com a unidade de medida de dados em potência binária, por isso a confusão.
Segundo essa imagem:
Nesse caso, aparece 50.441.455 Bytes, que dividido por 1024 = 49.259,233398438 KiloBytes, que dividido novamente por 1024 = 48,104720116 MegaBytes, que arredondado seria 48,1 MB.
Ele contabiliza na potência binária, porém com a nomenclatura atribuída hoje à potência decimal. No caso para seguir o padrão ou mudaria a nomenclatura para KibiByte e etc. ou calcularia o padrão na potência decimal.
Apesar de confuso, espero que tenha ficado claro...rs