Все просто: производители носителей информации зачастую в рекламных целях указывают объем информации, которые вмещают их продукты, в завышенном количестве. Они принимают 1000 байт за один килобайт, 1000 килобайт за 1 мегабайт, 1000 мегабайт за 1 гигабайт и так далее. Компьютер же рассчитывает объем, принимая 1 килобайт как байт (и далее так же). Таким образом и получается разница между заявленным объемом диска и реальным.
Разберем на указанном вами примере: производитель флеш-памяти указал объем в 32гб, подразумевая при этом 32*1000*1000*1000=32'000'000'000 байт. На компьютере они будут отображаться как 32'000'000'000 / 1024 = 31'250'000 килобайт, то есть 31'250'000 / 1024 ≈ 30'517 мегабайт, то есть 30'517 / 1024 ≈ 29,8 гигабайт.