![]() |
|
Инвертирование десятичного числа (наподобии операции NOT с двоичным числом).. | ☑ | ||
---|---|---|---|---|
0
dave2000
23.01.15
✎
18:03
|
Например, есть массив чисел 0..255, нужно их инвертировать, наподобии наподобии операции NOT с двоичным числом. Например, есть число 8, в дыоичной системе это будет 00001000 (1 байт), иверсия этого числа будет 11110111, в десятичной системе это будет 247.
Есть ли способы сделать это быстрее и красивее, чем программно переводить в "0" и "1", инвертировать их, а потом опять переводить в десятичную? |
|||
1
mehfk
23.01.15
✎
18:05
|
Напиши ВК
|
|||
2
dave2000
23.01.15
✎
18:05
|
Значения массива могут быть от 0..255, т.е. до максимального значения одного байта.
|
|||
3
patapum
23.01.15
✎
18:06
|
(0) 255-x
|
|||
4
mehfk
23.01.15
✎
18:06
|
А, стоп. У тебя диапазон чисел 0..255? Заведи массив заранее расчитаных значений.
|
|||
5
dave2000
23.01.15
✎
18:06
|
(1) прийдется писать, если не найду более простых решений
|
|||
6
anatoly
23.01.15
✎
18:08
|
если (2) - то однозначно (3) и без вопросов.
|
|||
7
dave2000
23.01.15
✎
18:21
|
(3) (6) Точно!
Но код видимо таки прийдется юзать, нужно будет выводить значения в 16-ричном виде. Всем спасибо! :) |
|||
8
dave2000
23.01.15
✎
18:24
|
Кстати, перевод в любую систему из 10-тичной:
http://infostart.ru/public/70053/ // Функия переводит число переданное в параметре // Значение в строку (либо число) в системе счисления X // X определяется линой шаблона, представление знаков разрядов // значение шаблона, где сивол шаблона[k] - есть представление // Например если шаблок "01", то перевод будет осуществлен в двоичную // систему счисления, если "01234567", то в восьмиричную // если "0123456789ABCDEF", то в шестнадцатиричную // если "ЛИ", то в двоичную, где 0 представлен буквой Л, а 1 буквой И // вариант шаблона: // "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwzyzАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯабвгдежзийклмнопрстуфхцчшщьыъэюя!@#$%^&*()_-=+{}[]\|/,.:;'""><" // представит Значение в сто пятидесятишести ричной системе счисления, // где соответствующий символ шаблона означает соответствующую цифру разряда Функция Из_Число_В_XСчисл(Знач Значение, Шаблон) Результат=""; Основание = СтрДлина(Шаблон); Пока Значение>0 цикл Остат = Значение%Основание; Результат1=Сред(Шаблон,Остат+1,1); Значение = (Значение-Остат)/Основание; Результат = Результат1 + Результат; КонецЦикла; Возврат Результат; КонецФункции Перевод из любой системы в 10-чную: http://infostart.ru/public/95428/ |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |