A resposta à Parte A da pergunta é que você não está multiplicando pelo número correto. O fator de correção de "GB binário", ou mais corretamente GiB, para bytes não é 1.048576. É 1024 ao cubo. Isso é 1.073.741.824.
46,8 x 1024 ao cubo = 50,251,117,363.2 O restante da discrepância é devido a um erro de arredondamento no "46.8". Parece que realmente deveria ser 46.813 ... alguma coisa.
Você precisa de outro fator de 1024 para cada "etapa" na escala dos prefixos binários. Por exemplo, para ir de GiB para KiB, ou de MiB para B, você deve multiplicar por 1024 ao quadrado, que é 1.048.576.
Veja o artigo da Wikipedia sobre "Prefixo binário", especialmente a tabela na parte inferior desta seção: link