Это результат использования двух разных стандартов обозначения единиц измерения количества информации (одно и то же обозначение единицы измерения может пониматься по разному).
Производители жёстких дисков пишут их объём в "десятичных" единицах (в них объём диска в цифрах получается больше, потому что сама единица меньше).
Десятичный терабайт: 1 ТБ = 10¹² байт = 1 000 000 000 000 байт
А в операционной системе компьютера обычно этот объём показывается в "двоичных" единицах (и в них значение объёма диска получается меньше, т.к. сама единица больше).
Двоичный терабайт: 1 ТБ = 2⁴⁰ байт = 1 099 511 627 776 байт
Двоичный гигабайт: 1 ГБ = 2³⁰ байт = 1 073 741 824 байт
Значит, ОС покажет объём диска так:
-в терабайтах: 10¹² / 2⁴⁰ ≈ 0,91 ТБ
-в гигабайтах: 10¹² / 2³⁰ ≈ 931,3 ГБ
Также, сколько то гигабайт система может зарезервировать для своих нужд, и доступный пользователю объём будет ещё меньше (как раз около 900 ГБ).
Объяснение:
Двоичные единицы были в компьютерной технике можно сказать с самого начала. И там они "родные", естественные- ведь компьютеры то построены на двоичной логике (почти все).
А отсюда вытекает количество адресуемой памяти- это степень двойки.
Микросхема памяти с четырьмя адресными входами позволяет обратиться к 2⁴ = 16-ти ячейкам памяти.
Шина адреса из 10 линий позволяет адресовать 2¹⁰ = 1024 ячейки.
Отсюда он, двоичный килобайт: 1 КБ = 2¹⁰ = 1024 байта
Близко к тысяче, поэтому стали обозначать по аналогии с приставкой "-кило" (к), но только большой буквой (К), чтобы хоть как то отличать от стандартной приставки СИ.
Уже тут приставки пишутся почти одинаково, но отличаются по значению, ведь стандартная "к" -это тысяча (1 000)
Потом памяти стало больше, и появился мегабайт:
1 МБ = 2²⁰ = 1 048 576 байта
Здесь различие в написании двоичных и десятичных приставок уже пропало полностью, но при этом стандартная приставка "-мега" (М) означает миллион (1 000 000).
Потом гигабайт, терабайт... С каждой следующей отличие от стандартных приставок сильно увеличивалось (для ТБ это уже значительные 10%).
И, был принят стандарт, использующий стандартные (десятичные) приставки (1 кБ = 1 000 Б, 1 МБ = 1 000 000 Б, итд), а двоичные единицы измерения предлагалось переименовать в КиБ (кибибайт), МиБ (мебибайт), итд.
Но конечно, путаницы стало только ещё больше, причём многократно. Ибо далеко не все хотят переходить на новый стандарт. Причин хоть отбавляй- от странного и длинного названия единиц, до того факта что всё начиная с самых истоков основано на старых единицах и их написании- вся документация, все программы, сама аппаратура даже... Да и людям так привычнее, так удобнее. Мало кто хочет переходить на десятичные единицы, а уж ещё меньше- на переименованные.
Хотя, конечно всё же некоторые переходят, особенно кому это выгодно- те же производители носителей информации- жёстких дисков, DVD-дисков, флешек даже.
И чем больше используют десятичных единиц, тем больше путаницы становится.
P.S. В общем, крепитесь, ребята. Нам в этом компоте всю жизнь придётся вариться. Если что непонятно- смотрите полный размер в байтах (где это доступно, конечно). А недоступно- читайте теорию или справку наконец уж. И да пребудет с вами Сила :)
const
nn=30;
mm=30;
var
a:array[1..mm,1..nn] of integer;
m,n,i,j,k,s:integer;
begin
Writeln('Введите число строк и столбцов массива: '); Read(m,n);
Randomize;
Writeln('*** Исходный массив ***');
k:=0;
for i:=1 to m do begin
for j:=1 to n do begin
a[i,j]:=Random(51)-25;
Write(a[i,j]:4);
if Odd(a[i,j]) then Inc(k)
end;
Writeln
end;
if k>5 then begin
Writeln('Средние арифметические отрицательных элементов по строкам');
for i:=1 to m do begin
s:=0; k:=0;
for j:=1 to n do
if a[i,j]<0 then begin Inc(k); s:=s+a[i,j] end;
if k>0 then Writeln(s/k:9:5) else Writeln(' 0.00000');
end
end
else begin
Writeln('*** Результирующий массив ***');
for i:=1 to m do begin
for j:=1 to n do begin a[i,j]:=2*a[i,j]; Write(a[i,j]:4) end;
Writeln
end
end
end.
Тестовые решения:
Введите число строк и столбцов массива:
8 6
*** Исходный массив ***
-16 -8 -1 24 -22 1
-9 -20 -25 13 -11 10
-15 10 -12 20 -22 3
-6 25 -3 25 -14 22
24 -4 24 17 -4 -17
-23 -9 -22 1 -18 -13
-12 13 6 -16 2 -13
19 8 -22 14 -3 4
Средние арифметические отрицательных элементов по строкам
-11.75000
-16.25000
-16.33333
-7.66667
-8.33333
-17.00000
-13.66667
-12.50000
Введите число строк и столбцов массива:
3 5
*** Исходный массив ***
3 24 -21 -22 -8
-21 14 -22 0 -22
15 -16 -2 6 22
*** Результирующий массив ***
6 48 -42 -44 -16
-42 28 -44 0 -44
30 -32 -4 12 44