16E significa 16 exabytes, ou mais precisamente 16 ebibyte (16 EiB), ou seja, 16 · 1024 6 bytes. Isso é 2 64 bytes. 2 64 -1 (que está dentro da precisão de 3 dígitos do valor exibido) é o valor máximo que pode ser representado em uma variável “nativa” em um sistema de 64 bits.
Muitos programas usam variáveis nativas para armazenar inteiros entre 0 e 2 64 -1 (inteiro sem sinal), ou entre -2 63 e 2 63 -1 (inteiro assinado). A representação na memória do inteiro assinado - x é a mesma que a representação do inteiro não assinado 2 64 - x . Para sistemas de 32 bits, os intervalos são de 0 a 2 32 -1 (4 GiB) e -2 31 a 2 31 -1 respectivamente .
Você menciona que o diretório Screenshots
contém cerca de 3,3 GiB. Observe que isso é maior que o valor máximo de 32 bits assinado, mas menor que o valor máximo de 32 bits sem sinal. O que provavelmente aconteceu aqui é que alguma parte do sistema armazenou o tamanho em uma variável de 32 bits, em seguida, converteu o valor em 64 bits, mas interpretou o valor como assinado em vez de não assinado. Portanto, um valor de -0,7 GiB (em uma escala de -2 GiB a 2 GiB) foi convertido para -0,7 GiB (em uma escala de -16 EiB a 16 EiB). 16 EiB - 0.7 GiB é 16 EiB (até cerca de 9 dígitos decimais de precisão).
Este é um bug na parte do sistema que usou valores de 32 bits. Se você colocar 4.1 GiB nesse diretório, você terá um tamanho total de ~ 0.1 GiB - diferente errado, pelo mesmo motivo. Verifique o rastreador de bugs do sistema operacional que está sendo executado e, se você não encontrar esse bug, informe-o.