НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ


Мова програмування Java. W3Schools українською. Уроки для початківців від hyperskill

En

Одиниці інформації


Теорія

Протягом життя ми завжди знаходимо, що виміряти: кількість їжі, яку потрібно приготувати для сім’ї, довжину та ширину дивана, який ви хочете поставити в кімнаті, нашу вагу та зріст. Останнє особливо захоплююче: це справді круто дізнатись, що всього за рік ти виріс на цілих 2 сантиметри!!!

Для кожного вимірювання потрібен прилад і власна одиниця вимірювання. Наприклад, вага тіла вимірюється за допомогою терезів у кілограмах (або фунтах), час вимірюється за допомогою годинника в секундах, хвилинах, годинах тощо. Але як виміряти інформацію?


§1. Біт: найменша одиниця інформації

Інформація, що вводиться в комп’ютер, має бути конкретною та однозначною. Протягом тривалого часу люди використовували шифри. Найпростішими і зручними з них були цифрові. Будь-яку інформацію від назв квітів до днів тижня можна подати у вигляді цифр. Під час обробки за допомогою традиційного комп’ютера дані кодуються чисельно та зберігаються у файлах, зрештою представлених електричними сигналами, які визначають швидкість роботи комп’ютера.

Для зручності розрізнення в класичних електронно-обчислювальних машинах використовуються сигнали двох рівнів. Один із них відповідає числу 1, а інший — 0. Будь-яка літера, звук або зображення на комп’ютері позначається набором цифр. Числа 1 та 0 називаються двійковими. Це символи, які складають мову, яку розуміє та використовує комп’ютер. Будь-яка інформація на комп’ютері представлена двійковими цифрами: 1, що означає "є сигнал" або "є високий сигнал" та 0, що означає "немає сигналу" або "є низький сигнал".

Найменшою одиницею інформації є біт (b).

Кожна цифра машинного двійкового коду містить кількість інформації, що дорівнює одному біту. Він може приймати лише одне з двох значень: 1 або 0. Вимірювати інформацію в бітах дуже незручно, тому що числа виходять занадто великими.


§2. Байт: послідовність із восьми бітів

Подібно до того, як люди не розглядають масу кораблів у грамах, для вимірювання інформації також були винайдені більші й, отже, зручніші одиниці.

Обробка інформації відбувається в процесорі (який має кожен комп’ютер). Це пристрій, який може працювати з кількома бітами одночасно (8, 16, 32, 64, ...). Більшість сучасних комп’ютерів обробляють 8 біт інформації одночасно, тому нам знадобилася нова одиниця вимірювання, яку назвали байт (B), що містить 8 біт.

Бітові позначки легко сплутати з байтовими. Зауважте, що в скороченнях для бітових чисел використовується мала літера "b", тоді як байти позначаються великою літерою "B".


§3. Великі одиниці інформації

Враховуючи розширені можливості сучасних комп’ютерів, ємність пам’яті розширено, щоб вмістити значно більші одиниці інформації, що перевищує традиційний масштаб байтів.

Комп’ютерна індустрія історично використовувала одиниці вимірювання кілобайт, мегабайт та гігабайт принаймні у двох дещо різних системах вимірювання, які дещо відрізняються і суперечать одна одній.

  • Перший — це десяткова система, яка використовує байти в ступенях десяти: кілобайт (10^3 байти), мегабайт (10^6 байт), гігабайт (10^9 байт) тощо. Ці одиниці використовуються в Міжнародній системі одиниць (СІ).
  • Друга — це двійкова система, яка використовує байти у ступенях двійки: кібібайт (2^10 байт), мебібайт (2^20 байт), гібібайт (2^30 байт) і так далі. Ця система активно використовувалася для опису комп’ютерної пам’яті.

Щоб вирішити цю плутанину, Міжнародна електротехнічна комісія (IEC) запропонувала використовувати префікси кіло, мега та гіга лише для десяткової системи з використанням нових префіксів kibi, mebi та gibi для двійкової системи. Тут bi означає binary: kibibyte це kilo binary byte.

Ось таблиця із загальновживаними одиницями вимірювання інформації відповідно до сучасних міжнародних стандартів.

СІ метрика Символ Степені десяти IEC метрика Символ Степені двійки
Kilobyte kB 10^3 B (1000 B) Kibibyte KiB 2^10 B (або 1024 B)
Megabyte MB 10^6 B (1000 kB) Mebibyte MiB 2^20 B (або 1024 KiB)
Gigabyte GB 10^9 B (1000 MB) Gibibyte GiB 2^30 B (або 1024 MiB)
Terabyte TB 10^12 B (1000 GB) Tebibyte TiB 2^40 B (або 1024 GiB)
Petabyte PB 10^15 B (1000 TB) Pebibyte PiB 2^50 B (або 1024 TiB)

Звичайно, тут перераховані не всі одиниці вимірювання. Сподіваємось, ця класифікація не збентежить вас.

Зверніть увагу, що деякі люди та організації досі віддають перевагу кіло, мега та гіга для опису ступенів двійки. У цьому курсі ми дотримуємося рекомендацій IEC і використовуємо сучасні префікси kibi, mebi та gibi.


§4. Перетворення одиниць вимірювання

Щоб зміцнити отримані знання, давайте розглянемо розв’язок досить типової задачі, де потрібно перетворити 1 ГіБ у КіБ. Коли ми перетворюємо більші одиниці на менші, нам потрібно вдатися до арифметичної операції, яка називається множенням:

1 ГіБ = 1 КіБ * 1024 * 1024 = 1048576 КіБ

Відповідно, коли вам потрібно перетворити малі одиниці на великі, ви використовуєте ділення. Давайте спробуємо перетворити 16384 біти в KiB:

16384 біти = (16384 / 8) / 1024 = 2 КіБ

Якщо ви хочете перетворити 1 ГБ в кБ, вам слід двічі помножити це число на тисячу:

1 ГБ = 1 КБ * 1000 * 1000 = 1000000 КБ

Вітаємо, тепер ви вивчили одну з базових тем інформатики та готові досягати нових запаморочливих висот знань у програмуванні.


§5. Висновок

Підсумок:

  • Найменшою одиницею інформації є біт.
  • Один байт складається з 8 бітів.
  • Для зручності в інформатиці ми використовуємо двійкові одиниці інформації, такі як байти, кібібайти, мебібайти тощо.
  • Щоб перетворити один кібібайт у байти, нам потрібно помножити 1 на 210, щоб перетворити один мебібайт, нам потрібно помножити 1 на 220 тощо.

Ви також можете переглянути Урок на hyperskill.org.


Практичні завдання та відповіді

Подаються завдання та варіанти відповідей. Правильний варіант виділено синім кольором.

№1. Перетворення байтів на біти

Питання: Скільки бітів у 12 байтах?

Скільки бітів у 12 байтах? Якщо відповідь – десятковий дріб, розділіть частини символом крапки:

Відповідь: (введіть короткий текст): 96


№2. Від найменшого до найбільшого

Запитання: Розсортуйте одиниці інформації від найменшої до найбільшої. Найбільша одиниця має бути внизу списку.

Розмістіть елементи в правильному порядку:

  • bit
  • byte
  • kilobyte
  • megabyte

№3. Перетворення бітів на байти

Питання: Скільки байтів у 256 бітах? Якщо відповідь – десятковий дріб, розділіть частини крапкою.

Відповідь: (введіть короткий текст): 32


№4. Найменша одиниця інформації

Запитання: Як називається найменша одиниця інформації?

Виберіть один варіант зі списку:

  • kilobyte
  • byte
  • microbyte
  • bit
  • microbit
  • bite
  • minibit

№5. Заяви (твердження)

Питання: Виберіть правильні твердження про десяткові та двійкові системи.

Виберіть один або кілька варіантів зі списку:

  • десяткова система використовує кібібайт, мебібайт, гібібайт
  • десяткова система використовує кілобайт, мегабайт, гігабайт
  • двійкова система використовує кібібайт, мебібайт, гібібайт
  • двійкова система використовує кілобайт, мегабайт, гігабайт

№6. Перетворення байтів на кібібайти

Питання: Скільки KiB міститься в 1536 B? Якщо відповідь – десятковий дріб, розділіть частини крапкою. ПІДКАЗКА: Запам’ятайте різницю між KiB та KB.

Введіть короткий текст: 1.5


№7. Перетворення GiB на MiB

Питання: Скільки МіБ міститься в 0.5 ГіБ?

Введіть короткий текст: 512


№8. 1 та 0

Питання: Будь-яка інформація в класичному комп’ютері представлена двійковими цифрами: 1 та 0. Але що вони означають? Виберіть усі правильні твердження.

Виберіть один або кілька варіантів зі списку:

  • 1 не використовується для представлення інформації
  • 0 означає "немає сигналу"
  • 0 не використовується для представлення інформації
  • 0 означає "є сигнал"
  • 1 означає "немає сигналу"
  • 1 означає "є сигнал"

№9. Одиниці вимірювання інформації

Запитання: Установіть відповідність між одиницями інформації та їхніми значеннями:

Установіть відповідність між елементами лівого та правого стовпців:

  • 1 кілобайт = 1000 байт
  • 1 мегабайт = 1000 кілобайт
  • 1 гігабайт = 1000 мегабайт
  • 1 терабайт = 1000 гігабайт
  • 1 петабайт = 1000 терабайт

№10. Перетворення байтів на кілобайти у функції

Привіт! Ця проблема може бути дещо непередбачуваною, але спробуйте її розв’язати та повідомте нам, як у вас справи!

Запитання: задана певна кількість байтів, ваше завдання — перетворити їх у кілобайти. Однак функція для цього здається незавершеною. Ваше завдання — заповнити пропуски у наданій функції Python, щоб точно перетворити задану кількість байтів у кілобайти. Ця функція приймає ціле число як аргумент, що представляє кількість байтів, і повертає відформатований рядок, що представляє значення в кілобайтах.

Заповніть пропуски відповідними елементами коду:

def bytes_to_kilobytes(bytes):
   return f"{bytes / 1024} Kilobytes"

print(bytes_to_kilobytes(5000))

Варіанти: bytes, 1024, kilobytes.


№11. Завершення функції для перетворення розміру файлу

Привіт! Ця проблема може бути дещо непередбачуваною, але спробуйте її та повідомте нам, як у вас справи!

Питання: Ви отримали фрагмент коду, призначений для перетворення розміру файлу з байтів на кілобайти та друку результату. Однак деякі частини коду відсутні. Ваше завдання полягає в тому, щоб визначити, які значення або оператори коду правильно заповнять пробіли в коді (позначені «▭»), щоб функція працювала належним чином. Пам’ятайте, що 1 кілобайт дорівнює 1024 байтам:

Заповніть пропуски відповідними елементами коду:

def convert_bytes_to_kilobytes():
     kilobytes = bytes /
     return str(kilobytes) + " "

bytes_size = 5120
print(convert_bytes_to_kilobytes(bytes_size))

Варіанти: KB, bytes, 1024.

Рішення:

Правильним кодом для заповнення прогалин буде:

def convert_bytes_to_kilobytes(bytes):
     kilobytes = bytes / 1024
     return str(kilobytes) + " KB"

bytes_size = 5120
print(convert_bytes_to_kilobytes(bytes_size))

Пояснення. Це визначить функцію convert_bytes_to_kilobytes(), яка приймає аргумент bytes і повертає розмір у кілобайтах у вигляді рядка з додаванням "KB". Функція обчислює розмір у кілобайтах шляхом ділення кількості байтів на 1024. Змінна bytes_size має значення 5120, тобто кількість байтів, яку потрібно перетворити на кілобайти. Нарешті, функція print() використовується для виклику convert_bytes_to_kilobytes() з аргументом bytes_size і друку результату.