Степені 2У математиці степінь двійки означає число виду 2n, де n є ціле число, тобто внаслідок піднесення до степеня з числом два як основою і цілим числом n як показником. Якщо розглядати як результат піднесення до степеня лише цілі числа, то n обмежується невід'ємними значеннями,[1] тому ми маємо 1, 2 і 2 помножені самі на себе певну кількість разів.[2] Через те, що два є основою двійкової системи числення, степені двійки є поширеними в інформатиці. Таке число записане в двійковій системі, є степенем двох, яка має вигляд 100…000 або 0.00… 001, так само, як і степені десяти в десятковій системі. Вирази та позначенняВербальні вирази, математичні позначення та вирази комп'ютерного програмування з використанням оператора степені або функції включають в себе:
ІнформатикаДва в степені n, записується у вигляді 2n, є кількістю способів як можуть бути організовані біти в двійковому слові довжини n. Як беззнакові цілі ці способи представляють числа від 0 (000…000) 2n − 1 (111…111) включно. Відповідні цілі числа є додатні, від'ємні числа та нуль; див. прямий код. У будь-якому разі, на один менше, ніж степінь двійки, часто є верхньою межею цілого числа в двійковому лічильнику. Як наслідок, номери цієї форми часто з'являються в програмному забезпеченні комп'ютера. Як приклад, відеогра, що працює на 8-бітній системі може обмежити рахунок або кількість елементів, гравець може зберігати до 255 — в результаті використання байта, довжиною 8 біт, щоб зберегти номер, даючи максимальне значення 28 − 1 = 255. Наприклад, в грі Legend of Zelda головний герой був обмежений носінням 255 рупій (валюта гри) в будь-який момент часу, і відеогра Pac-Man хвацько вимикається якщо кількість рупій рівна 255. Степені двійки часто використовується для вимірювання пам'яті комп'ютера. Байт в даний час містить вісім біт (октет, в результаті чого можливо 256 значень (28). (Термін байт використовувався, а в деяких випадках і продовжує бути колекцією бітів, зазвичай від 5 до 32 біт, а не тільки 8-бітовим блоком.) Префікс кіло, в поєднанні з байт, може бути, і традиційно, використовується, щоб позначати 1,024 (210). Однак, загалом, термін кіло використовувався в Міжнародній системі одиниць для позначення 1,000 (103). Бінарні префікси були стандартизовані, наприклад, кібі (Кі), що означає 1,024. Майже всі регістри процесора мають розміри, які є степенем двійки, наприклад, 32 або 64 є найбільш поширеними. Степені двійки з'являються в інших місцях. Для багатьох дисків, принаймні один з розмірів сектора, кількість секторів на доріжці і кількість треків на поверхні є степінню двійки. Розмір логічного блоку майже завжди є степінню двійки. Числа, які не є степенями двійки зустрічаються в ряді ситуацій, таких як роздільна здатність дисплея, але вони часто є сумою або добутком тільки двійки в другому, або третьому, або двійки в мінус першій степені. Наприклад, 640 = 512 + 128 = 128 × 5 і 480 = 32 × 15. Іншими словами, вони мають досить регулярні бітові комбінації. Прості числа МерсеннаПросте число, що на одиницю менше, ніж степінь двійки, називається числом Мерсенна. Наприклад, просте число 31 буде числом Мерсенна, оскільки воно на одиницю менше, ніж 32 (25). Аналогічно, просте число (наприклад, 257), що на одиницю більше, ніж натуральний степінь двійки, називається числом Ферма; показник сам буде степенем двійки. Дріб, що має степінь двійки знаменником, називається двійково-раціональним. Числа, які можна подати у вигляді суми послідовних натуральних чисел, називаються послідовними числами[en]; вони точно не є степенями двійки. Елементи Евкліда, Книга IXГеометрична прогресія 1, 2, 4, 8, 16, 32, … (або, в двійковій системі числення, 1, 10, 100, 1000, 10000, 100000, …) відіграє важливу роль в теорії чисел. Книга IX, Теорема 36 Елементів доводить, що якщо сума перших n членів цієї прогресії є простим числом (про числа Мерсенна йшлося вище), то якраз ця сума помножена на n-й член — досконале число. Наприклад, сума перших 5 членів ряду 1 + 2 + 4 + 8 + 16 = 31, є простим числом. Сума 31 множиться на 16 (п'ятий член ряду) дорівнює 496, що є досконалим числом. Книга IX, Теорема 35, доводить, що в геометричній прогресії, якщо перший член віднімається від другого і останнього в послідовності, тоді, як остача другого відноситься до першого, так остача останнього буде відноситися до всіх перед ним. (Це переформулювання нашої формули для раніше згаданої геометричної прогресії). Застосовуючи це до геометричної прогресії 31, 62, 124, 248, 496 (в результаті перетворення з 1, 2, 4, 8, 16, помноживши всі елементи на 31), ми бачимо, що 62 мінус 31 дорівнює 31, тоді як 496 мінус 31 є сумою 31, 62, 124, 248. Тому число 1, 2, 4, 8, 16, 31, 62, 124 і 248 є сумою 496 і далі числа, що є дільниками 496. Дійсно, нехай p є дільником 496 і не є одним з цих чисел. Припустимо, p q дорівнює 16 × 31, або 31 є q, тоді як p є 16. Тепер p може не може бути дільником 16, або воно було б серед чисел 1, 2, 4, 8 або 16. Тому 31 не може бути дільником q. А так як 31 ділить q і q вимірює 496, з основної теореми арифметики випливає, що q повинно бути дільником 16 і бути серед чисел 1, 2, 4, 8 або 16. Нехай q буде 4, тоді p повинно бути 124, що неможливо, так як, за умовою, p не може знаходитися серед чисел 1, 2, 4, 8, 16, 31, 62, 124 або 248. Перші 96 степенів двійкипослідовність A000079 з Онлайн енциклопедії послідовностей цілих чисел, OEIS
Можна побачити, що, починаючи з 2 остання цифра є періодичною з періодом 4, з циклом 2-4-8-6- і, починаючи з 4, дві останні цифри є періодичними з періодом 20. Ці моделі, зазвичай, правильні для будь-якій степені, та будь-яких основ. Модель, звісно, продовжується у випадках, коли кожна структура бере свій початок з 2k і період є мультиплікативним порядком числа 2 по модулю 5k, де φ(5k) = 4 × 5k−1 (φ — функція Ейлера, див. мультиплікативна група кільця лишків за модулем n). Деякі обрані степені двійки
Степені 1024послідовність A140300 з Онлайн енциклопедії послідовностей цілих чисел, OEIS Перші кілька степенів 210 є трохи більшими, ніж у 1000:
Див. IEEE 1541-2002[ru]. Степені двійки, чиї показники є степенями двійкиОскільки дані (зокрема, цілі числа) та адреси даних зберігаються з використанням тих самих апаратних засобів, і дані зберігаються в одній або декількох октетах (23), подвійні степені[en] двійки є поширеними. Наприклад, послідовність A001146 з Онлайн енциклопедії послідовностей цілих чисел, OEIS
Деякі з цих чисел виражають кількість значень, яку можна представити за допомогою загальних комп'ютерних типів даних. Наприклад, 32-бітове слово, що складається з 4 байтів може виражати 232 різних значень, які можна розглядати як бітові шаблони, або ж їх зазвичай інтерпретують як числа без знака від 0 до 232 − 1, або в діапазоні від числа зі знаком між −231 і 231 − 1. Також див. тетрація та гіпероператор. Для детальнішої інформації про представлення чисел зі знаком див. доповняльний код. Цифри формують ірраціональну послідовність[ru] для будь-якої послідовності натуральних чисел, ряд зводиться до ірраціональних чисел. Незважаючи на швидке зростання цієї послідовності, це є ірраціональною послідовністю з найповільнішими темпами зростання поміж усіх відомих.[4] Швидкий алгоритм для перевірки чи є натуральне число степенем двійкиБінарне представлення чисел дозволяє застосовувати дуже швидкий тест, щоб визначити, чи є дане натуральне число х степенем двійки:
де & знаходить є побітовим логічним AND. Зауважимо, що якщо x = 0, це неправильно вказує 0 степінь двійки, так що це перевірка працює тільки якщо x > 0. Приклади:
Доказ концепції: Твердження, S: Якщо x&(x-1) = 0 і х ціле число більше нуля, то x = 2k (де k — ціле число, таке, що k>=0). Концепція контрапозиції: Якщо x ≠ 2k, то хоча б 2 біти х є встановленими (давайте вважати, що m бітів встановлено). Тепер ми бачимо, що вираз х & (х-1) має всі нульові біти до першого заданого біта х і з х & (х-1) має інші біти ті ж, як х, і х має принаймні два набори бітів, отже, предикат х і (х-1) ≠ 0 є вірним. Швидкий алгоритм, щоб знайти число по модулю степенів двійкиЯк узагальнення того, що написано вище, бінарне представлення цілих чисел дозволяє розрахувати модуль додатнього цілого числа (х) зі степенем двійки (y) дуже швидко:
де & оператор побітового логічного AND . Це обходить необхідність виконання дорогого поділу. Це корисно, якщо операція по модулю є важливою частиною критичного шляху продуктивності, так як це може бути набагато швидше, ніж звичайний оператор модуля. Алгоритм для перетворення будь-якого числа в найближчу степінь двійкиНаступна формула знаходить найближчу степінь двійки, за логарифмічною шкалою, заданого значення x > 0: Це повинно відрізнятися від найближчої степені двійки за лінійною шкалою. Наприклад, 23 ближче до 16, ніж до 32, але попередня формула округлює його до 32, що відповідає тому, що 23/16 = 1,4375, більше, ніж 32/23 = 1,3913. Якщо x — ціле значення, наступні кроки можна зробити щоб знайти найближче значення (відносно фактичного значення, а не двійкового логарифму) в комп'ютерній програмі:
Алгоритм для округлення до степені двійкиІноді потрібно знайти найменшу степінь двійки, яка є не меншою за певне ціле n. Псевдокод алгоритму для обчислення наступної вищої степені двійки полягає в наступному: якщо вхідні дані є степенем двійки, вони повертаються без змін.[5] n = n - 1;
n = n | (n >> 1);
n = n | (n >> 2);
n = n | (n >> 4);
n = n | (n >> 8);
n = n | (n >> 16);
...
n = n | (n >> (bitspace / 2));
n = n + 1;
Де | являє собою бінарний оператор «або», >> оператор двійковий зміщення праворуч, і «bitspace» — розмір (в бітах) цілого простору, виділеного n. Для більшості комп'ютерних архітектур, це значення є 8, 16, 32 або 64. Цей оператор працює, встановивши всі біти на правій стороні з найбільш значущих FLAGGED біт в 1, а потім збільшуючи загальне значення у кінці, так це «зашкалює» в найближчій степені двійки. Приклад кожного кроку цього алгоритму для числа 2689 має такий вигляд:
Як було показано вище, алгоритм дає правильне значення 4096. Найближчим степенем 2689, є 2048; Однак, цей алгоритм призначений тільки дати наступну, більш високу, степінь двійки до заданого числа, не найближчу. Інший спосіб отримання 'наступного за величиною' степеня двійки до заданого числа, що не залежить від довжини bitspace полягає в наступному. unsigned int get_nextpowerof2(unsigned int n)
{
/*
* Below indicates passed no is a power of 2, so return the same.
*/
if (!(n & (n-1))) {
return (n);
}
while (n & (n-1)) {
n = n & (n-1);
}
n = n << 1;
return n;
}
Швидкі алгоритми, щоб округлити будь-яке ціле число до кратного заданої степені двохДля будь-якого цілого x і невід'ємної степені двійки y, if z = y — 1,
x до кратному y. Інші властивостіСума всіх n-обраних біноміальних коефіцієнтів дорівнює 2n. Розглянемо множину всіх n- розрядних двійкових чисел. Її потужність буде 2n. Вона також буде сумою потужностей певних підмножин: підмножина цілих чисел без будь-яких 1s (що складаються з одного числа, записується у вигляді n 0s), підмножина з одного 1, підмножина з двома 1s, і так далі до підмножини з n 1s (що складається з ряду записаного у вигляді n 1s). Кожен з них, у свою чергу дорівнює біноміальному коефіцієнту індексованого n та кількість 1s, що розглядається (наприклад, є 10-обране-3 двійкові числа з десяти цифр, які включають в себе рівно три 1s). Числом вершин n-мірного гіперкуба є 2n. Крім того, число (n − 1) граней конфігурації n-мірного гіпероктаедра також 2n і формула для числа x-гранного n-мірного кроссполітопа є . Сума зворотних ступенів двійки[en]: 2. Сума зворотних квадратів ступенів двійки[en] є 1⅓. Див. такожПосилання
|
Portal di Ensiklopedia Dunia