| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Составление SQL-запросов > Как можно преобразовать int в двоичное число? |
| Автор: lankin 24.11.2008, 13:12 |
| В общем вот такой интересный вопрос: можно ли в SQL число int конвертировать в двоичную систему и, преобразовав, снова конвертировать в int? Например, у меня есть число "19". Я хочу его разложить, чтобы в итоге получилось "10011" в двоичной системе. Затем, я хочу добавить в середину, а именно, сместить 3-й символ "0" и вставить свой символ, например "1". Получается вот такое число "100111". В конце снова конвертируем его в int и получаем число "39". В VisualStudio это без проблем делается, а вот в SQL как? Работаю в MS SQL Server2005. Заранее благодарю. |
| Автор: Zloxa 24.11.2008, 13:36 | ||
| Зачем конвертить? Можно сразу посчитать
val - исходное значение pos - позиция вставляемого бита (порядковый номер справа налево) bit - значение вставляемого бита Первое слагаемое - гасим все биты правее указаннной позициии и сдвигаем влево Второе слагаемое - гасим все биты левее указанной позиции Третье слагаемое - устанавливаем бит |
| Автор: lankin 24.11.2008, 14:16 | ||
| Вот такую формулу придумали: где a-степень, равная тому биту, после которого начинается сдвиг, n-степень, равная a+1, то есть смешение на 1 бит. Работает Добавлено через 6 минут и 9 секунд
|