Функция ОСНОВАНИЕ выполняет преобразование числового значение в указанную систему счисления (двоичная, восьмеричная, шестнадцатеричная и т. д.) и возвращает соответствующий результат в виде текстовой строки.
Примеры использования функции ОСНОВАНИЕ в Excel
Пример 1. Для хранения чисел в БД удобно использовать их представление в двоичной системе счисления. Выполнить преобразование представленных значений.
Исходная таблица:
Для преобразования используем формулу:
Описание аргументов:
- B2 – число, которое требуется преобразовать;
- 2 – указатель вида системы счисления.
Выполним преобразование для всех чисел. Полученный результат:
Ошибка #ЧИСЛО! Возникла потому, что -56 находится вне диапазона допустимых значений (отрицательное число). Результат вычисления формулы =ОСНОВАНИЕ(0,9;2) эквивалентен результату =ОСНОВАНИЕ(0;2), поскольку рассматриваемая функция усекает дробные значения аргумента число до целых значений.
Перевод числа из одной системы счисления в другую в Excel
Пример 2. Преобразовать числа, записанные в шестнадцатеричной системе счисления в двоичную систему с длиной полученной строки не менее 20 символов.
Таблица значений:
В Excel предусмотрена формула ШЕСТН.В.ДВ, однако она поддерживает значения из диапазона от FFFFFFFE00 до 1FF. Поэтому выполним промежуточное преобразование в десятичную систему и воспользуемся функцией ОСНОВАНИЕ для перевода в двоичную:
Описание аргументов:
- ШЕСТН.В.ДЕС(A2) – исходное число, преобразованное в десятичную систему счисления;
- 2 – указание на вид системы счисления;
- 20 – минимальное количество символов в возвращаемой строке.
Результаты расчетов:
Сложение чисел в разных системах счисления в Excel
Пример 3. Отобразить результаты сложения двух чисел, записанных в двоичной системе, в виде чисел в десяти- и тридцатидвухричных системах счисления.
Исходная таблица:
В ячейке A6 запишем следующую формулу:
Функция ДВ.В.ДЕС преобразует числа из двоичной в десятеричную систему.
В ячейке B6 запишем формулу:
В данном способе выполняется преобразование в понятную многим десятичную систему счисления, в которой и выполняется операция сложения чисел (вместо, например, алгоритма сложения в столбик в двоичной системе, где необходимо учитывать правила: 0+0=0, 1+1=10 и т. д.). Функцией ОСНОВАНИЕ выполняется преобразование результата в требуемые системы исчисления. Пример расчета:
Особенности использования функции ОСНОВАНИЕ в Excel
Функция имеет следующую синтаксическую запись:
=ОСНОВАНИЕ(число;основание;[минимальная_длина])
Описание аргументов:
- число – обязательный аргумент, характеризующий числовое значение из диапазона целых чисел от 0 до 253, которое требуется преобразовать к указанной системе счисления.
- основание – обязательный аргумент, характеризующий числовое значение из диапазона целых чисел от 2 до 36, которое является основанием требуемой системы исчисления.
- [минимальная_длина] – необязательный аргумент, характеризующий числовое значение из диапазона от 0 до 255, определяющее минимальную длину в символах возвращаемой текстовой строки.
Примечания:
- Функция возвращает код ошибки #ЧИСЛО!, если любой из ее аргументов является числовым значением, выходящим за пределы допустимых для данного аргумента значений.
- Если один или несколько аргументов являются текстовой строкой, рассматриваемая функция вернет код ошибки #ЗНАЧ!.
- Функция доступна только в новых версиях программы (Excel 2013 и более поздних).
- В отличие, например, от функции ДЕС.В.ДВ, которая выполняет преобразование чисел из диапазона от -512 до 511, функция ОСНОВАНИЕ выполняет преобразование чисел от 0 до 253.
- При явном указании аргумента [минимальная_длина] возможны следующие ситуации:
- длина полученного значения меньше, чем регламентируется аргументом [минимальная_длина]. В этом случае в начале возвращаемой строки слева будет добавлено определенное количество нулей для достижения требуемой длины;
- длина рассчитанного значения больше, чем регламентируемая. Функция ОСНОВАНИЕ вернет полученный результат, не урезая его. Например, функция с аргументами (12345;2;20) вернет значение «00000011000000111001», а функция с аргументами (12345;2;2) вернет «11000000111001».
Программист по неволе 24 / 24 / 8 Регистрация: 22.04.2015 Сообщений: 476 Записей в блоге: 1 |
|
1 |
|
Работа с числами в двоичной системе счисления02.10.2015, 12:54. Показов 7875. Ответов 3
Можно в Excel работать с числами в двоичной системе?
0 |
15136 / 6410 / 1730 Регистрация: 24.09.2011 Сообщений: 9,999 |
|
02.10.2015, 13:14 |
2 |
Сообщение было отмечено Alex_From_777 как решение Решение
Разрядов у меня 10 Формула для строк 1:1023 Код =--(СТРОКА()>511)&ДЕС.В.ДВ(ОСТАТ(СТРОКА();512);9)
1 |
2640 / 1697 / 694 Регистрация: 04.09.2015 Сообщений: 3,367 |
|
02.10.2015, 14:04 |
3 |
Вариант для Excel 2003, у которой нет функции ДЕС.В.ДВ() Код =СУММПРОИЗВ(ОКРВНИЗ(ОСТАТ(A1/2^(СТРОКА($1:$10)-1);2);1)*10^(СТРОКА($1:$10)-1))
1 |
2079 / 1232 / 464 Регистрация: 20.12.2014 Сообщений: 3,237 |
|
04.10.2015, 17:30 |
4 |
1 |
Добрый день ! Подскажите, как в Excel по-XOR-ить 2 ячейки, где записаны числа в двоичном виде побитово в третью ячейку ? т.е. есть ячейка «00001011» и ячейка «00000110», чтоб в результате в третей было «00001101» |
|
genyaa Пользователь Сообщений: 296 |
Не уверен, что верно понял, что значит «побитово»… Но посмотрите файл. Может подойдет. (Результат выделен рамкой.) |
{quote}{login=genyaa}{date=06.11.2007 09:26}{thema=}{post}Не уверен, что верно понял, что значит «побитово»… Но посмотрите файл. Может подойдет. (Результат выделен рамкой.){/post}{/quote} Огромное спасибо. Результат такой. А можно как-то сделать так, чтоб небыло этих дополнительных ячеек ? ну чтоб была какая-то формула общая в 3ей ячейке, которая сама все сделает. Я вот нашел в интернете такое описание, но не пойму, что с этим делать Defining number of bits 8-bits =2^(8-ROW(INDIRECT(«1:8»))) x XOR y: =SUMPRODUCT(MOD(MOD(INT(x/Bits),2)+MOD(INT(y/Bits),2),2),Bits) |
|
genyaa Пользователь Сообщений: 296 |
Честно говоря, я запостил недоделанный вариант… поторопился. Проверил работоспособность идеи и запостил… а не доделал. Вот тут доделанный. Вроде работает. |
genyaa Пользователь Сообщений: 296 |
А здесь я добавил результат адоптации найденного Вами на другом сайте решения к русским функциям. Я только добавил преобразование десятичных чисел в двоичные и обратно. |
{quote}{login=genyaa}{date=06.11.2007 11:11}{thema=}{post}А здесь я добавил результат адоптации найденного Вами на другом сайте решения к русским функциям. Я только добавил преобразование десятичных чисел в двоичные и обратно.{/post}{/quote} genyaa, огромное спасибо ! но я не очень понимаю ,как все это вообще работает. Я взял Ваш файл, все на ячейках А1 и А2 работает замечательно. |
|
genyaa Пользователь Сообщений: 296 |
{quote}{login=genyaa}{date=06.11.2007 11:11}{thema=}{post}А здесь я добавил результат адоптации найденного Вами на другом сайте решения к русским функциям. Я только добавил преобразование десятичных чисел в двоичные и обратно.{/post}{/quote} |
{quote}{login=Михаил}{date=07.11.2007 10:20}{thema=Re: }{post}genyaa, огромное спасибо ! но я не очень понимаю ,как все это вообще работает. Моя формула основана на создании двух массивов (с помощью функций СМЕЩ и СТОЛБЕЦ), значения элементов которых равны значениям каждого соответствующего разряда двоичных чисел (записанных десятичными фактически), находящихся в А1 и А2. Два массива сравниваются между собой поэлементно (по принципу формулы массива) так, чтобы результат сравнения был 1 при неравенстве и 0 при равенстве соответствующих элементов. На основе получающегося массива результатов сравнения формируется десятичное число, равное сумме произведений каждого его элемента на 10 в степени номера позиции этого элемента с конца массива (т.е. в степени разрядности соответствующей цифры результата). А чтобы заглавные нули не отсекались, к результату добавляется еще 10 в степени разрядности разультата плюс 1. Далее полученное число преобразуется в текст и заглавная единица отбрасывается с помощью функции ПРАВСИМВ. {quote}{post}Я взял Ваш файл, все на ячейках А1 и А2 работает замечательно. Нужно просто быть внимательным и немного понимать суть ее решения. Формула большая и любая ошибка в ее редактировании приведет к ее сбою. |
|
andy1618 Пользователь Сообщений: 128 |
{quote}{login=Михаил}{date=06.11.2007 04:02}{thema=Сложение 2х двоичных ячеек по модулю 2}{post}Подскажите, как в Excel по-XOR-ить 2 ячейки, где записаны числа в двоичном виде побитово в третью ячейку ? |
{quote}{login=andy1618}{date=07.11.2007 01:14}{thema=Re: Сложение 2х двоичных ячеек по модулю 2}{post}удобнее написать мелкую VBA-функцию: |
|
{quote}{login=}{date=07.11.2007 01:38}{thema=Re: Re: Сложение 2х двоичных ячеек по модулю 2}{post}{quote}{login=andy1618}{date=07.11.2007 01:14}{thema=Re: Сложение 2х двоичных ячеек по модулю 2}{post}удобнее написать мелкую VBA-функцию: С функцией пробовал. Есть проблема с ней, которая состоит в том, что эти двоичные числа ни что иное, как коды ASCII, которые получаются не только из чисел, но и из букв, символов и т.д. Иногда XOR-иться код не десятичного числа, а какой-то буквы Все вышенаписанное попытаюсь обобщить и сделать у себя все верно. |
|
Что-то не получается у меня Не получается в С7 получить верный XOR Может у меня формат какой-то не тот данных стоит ? |
|
andy1618 Пользователь Сообщений: 128 |
Если изначально числа шестнадцатиричные, то можно немного доработать функцию: Либо можно прямо в Hex-е выводить: |
ВСЕ ! Всем спасибо, заработало ! из кучи решений остановил выбор на вырианте Но возникла новая проблема. ГПР я использую, чтобы полученное предварительными рассчетами XOR-значение найти в таблице кодов ASCII и вернуть значение этого кода. В чем ошибка. Буквы большие и малые функция возвращает верно, а вот цифры и символы нет. В чем дело ? Подскажите пожалуйста |
|
Вот еще раз сделал. Буквы по таблице находит отлично. |
|
{quote}{login=Михаил}{date=08.11.2007 02:44}{thema=}{post}Вот еще раз сделал. Буквы по таблице находит отлично. А пример в файле показать можно? |
|
Можно. Вот пробные рассчеты. |
|
andy1618 Пользователь Сообщений: 128 |
{quote}{login=Михаил}{date=08.11.2007 02:39}{thema=Re: }{post}ГПР я использую, чтобы полученное предварительными рассчетами XOR-значение найти в таблице кодов ASCII и вернуть значение этого кода. Хм, а что мешает напрямую по коду символа вычислять сам символ функцией CHAR()? (в русской версии, наверное, это функция «СИМВОЛ») |
andy1618 Пользователь Сообщений: 128 |
Посмотрел файл — у меня он не работает (функции типа ШЕСТН.В.ДВ глючат при переходе между русским и английским офисами), но не суть. |
{quote}{login=andy1618}{date=08.11.2007 03:50}{thema=Re: Re: }{post}{quote}{login=Михаил}{date=08.11.2007 02:39}{thema=Re: }{post}ГПР я использую, чтобы полученное предварительными рассчетами XOR-значение найти в таблице кодов ASCII и вернуть значение этого кода. Хм, а что мешает напрямую по коду символа вычислять сам символ функцией CHAR()? (в русской версии, наверное, это функция «СИМВОЛ»){/post}{/quote} Спасибо за идею. Мешало отсутствие знаний, т.к. Excel я никогда не использовал для таких задач. Уже реализовал, вроде работает |
|
{quote}{login=andy1618}{date=08.11.2007 04:00}{thema=}{post}Посмотрел файл — у меня он не работает (функции типа ШЕСТН.В.ДВ глючат при переходе между русским и английским офисами), но не суть. Огромное спасибо ! после добавления «FALSE» все заработало ! Попробую привести теперь все это в вид поприличнее. Если кому интересно вдруг, то эта табличка позволяет дешифровывать пароли оборудования Cisco Systems. По ячейкам можно просмотреть весь алгорит шифрования от и до. |
|
Подскажите пожалуйста как посчитать сумму по модулю 2? как составить именно таблицу истинности в Excel |
|
Guest Гость |
#23 27.09.2010 22:18:53 {quote}{login=Kemper}{date=27.09.2010 10:09}{thema=}{post}Подскажите пожалуйста как посчитать сумму по модулю 2? как составить именно таблицу истинности в Excel{/post}{/quote} Что Вы имеете ввиду? |
Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Еще…Меньше
В этой статье описаны синтаксис формулы и использование функции БИТ.И в Microsoft Excel.
Описание
Возвращает результат операции поразрядного И для двух чисел.
Синтаксис
БИТ.И(число1;число2)
Аргументы функции БИТ.И описаны ниже.
-
Число1 Обязательный. Должен быть в десятичной форме и больше 0.
-
Число2. Обязательный. Должен быть в десятичной форме и больше 0.
Замечания
-
Функция БИТ.И возвращает десятичное число.
-
Результат — поразрядное И параметров функции.
-
Значение каждой битовой позиции считается, только если биты обоих параметров в этой позиции равны 1.
-
Значения битовых позиций увеличиваются справа налево и являются степенями 2. Крайний правый бит возвращает 1 (2^0), бит слева от него — 2 (2^1) и т. д.
-
Если хотя бы один из аргументов меньше 0, bitAND возвращает #NUM! значение ошибки #ЗНАЧ!.
-
Если один из аргументов не является integer или больше (2^48)-1, bitAND возвращает #NUM! значение ошибки #ЗНАЧ!.
-
Если значение любого из аргументов не является числом, то bitAND возвращает #VALUE! значение ошибки #ЗНАЧ!.
Пример
Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.
Формула |
Описание |
Результат |
Принцип действия |
=БИТ.И(1,5) |
Сравнивает бинарные представления чисел 1 и 5. |
1 |
Двоичное представление 1 — 1, а двоичное представление 5 — 101. Их биты совпадают только в крайней правой позиции. Возвращается как 2^0 или 1. |
=БИТ.И(13;25) |
Сравнивает бинарные представления чисел 13 и 25. |
9 |
Двоичное представление 13 — 1101, а двоичное представление 25 — 11001. Их биты совпадают в крайней правой позиции и в четвертой позиции справа. Возвращается как (2^0)+ (2^3) или 9. |
Десятичное число |
Двоичное представление |
||
13 |
1101 |
||
25 |
11001 |
К началу страницы
Нужна дополнительная помощь?
Изучим стандартные способы перевода чисел в различные системы счисления в Excel: двоичную, восьмеричную, десятичную и шестнадцатеричную.
Помимо повсеместно распространенной и всем нам хорошо известной десятичной системы счисления также используются и системы с другими основаниями (отличными от 10), например, двоичная, троичная, восьмеричная и т.д.
Большинство из них имеют достаточно широкое применение практически во всех современных электронных устройствах, в программировании или компьютерной документации.
В Excel есть возможность стандартными средствами переводить данные в четырех системах счисления:
Давайте подробно остановимся на основных вариантах преобразования данных.
Перевод числа из десятичной в двоичную систему в Excel
Для преобразования данных в двоичную запись в Excel существует стандартная функция ДЕС.В.ДВ (имя функции получается как первые буквы от слов ДЕСятичное В ДВоичное, дополнительно разделенное точками):
ДЕС.В.ДВ(число; [разрядность])
Преобразует десятичное число в двоичное.
- Число (обязательный аргумент) — десятичное целое число, которое требуется преобразовать;
- Разрядность (необязательный аргумент) — количество знаков для использования в записи.
Данный аргумент необходим если нужно приписать к двоичной записи данных ведущие нули. К примеру, число 1101 с разрядностью 7 будет иметь вид 0001101.
Обратите внимание, что Excel накладывает определенные ограничения на размер преобразуемых данных.
Двоичная запись не должна занимать более 10 знаков, поэтому десятичное число, соответственно, не должно быть больше 511 или меньше -512, иначе в качестве значения функция ДЕС.В.ДВ вернет ошибку.
Перевод числа из двоичной в десятичную систему в Excel
Для осуществления обратного перевода можно воспользоваться функцией ДВ.В.ДЕС:
ДВ.В.ДЕС(число)
Преобразует двоичное число в десятичное.
- Число (обязательный аргумент) — двоичное число, которое требуется преобразовать.
При этом разрядность в качестве аргумента функции для десятичной записи не используется.
Как и в случае с функцией ДЕС.В.ДВ при использовании ДВ.В.ДЕС существует ограничение на размер преобразуемых данных — не более 10 знаков в записи, в ином случае функция вернет значение ошибки.
Перевод в других системах счисления
Для других систем счисления (восьмеричной, шестнадцатеричной) также определен набор стандартных формул.
Для удобства мы составили таблицу со схемой выбора формулы для преобразования данных (в левом столбце указано откуда переводим данные, в верхней строчке — куда переводим):
Как и в примерах выше имена функций образуются по достаточно простому правилу — берутся первые буквы от названий систем в которых преобразуются данные и разделяются точками (ВОСЬМеричное В ШЕСТНадцатеричное и пр.)
Арифметические операции с данными
Операции в Excel осуществляются в десятичной системе счисления, поэтому при применении арифметических действий (сложение, вычитание и т.д.) для преобразованных данных учитывайте, что конечный результат также будет записан в десятичной записи:
Чтобы избежать подобной проблемы, необходимо сначала перевести все данные в десятичный вид, произвести требуемые вычисления, а уже затем вновь преобразовать полученный результат в исходную систему счисления:
Удачи вам и до скорых встреч на страницах блога Tutorexcel.ru!