Часть 4. Переход от десятичного к двоичному представлению числаИ так, отрицательные числа нам не страшны. Надо просто перейти от знаковых к беззнаковым переменным и все у нас получится.
На языке C++ это выглядело бы так:
Подсветка синтаксиса языка cpp
short m = -2;
unsigned short n;
n = (unsigned short)m;
Теперь можно работать с беззнаковой переменной n, в частности получить ее двоичное представление, которое вместе с тем будет двоичным представлением числа -2.
Идея получения двоичного представления очень проста. Она основывается на том, что остаток от деления числа на 2 дает всегда младший бит двоичного представления, деление же на сдвигает биты вправо, т.е. удаляет младший бит. И так, на языке C++ это можно записать, например, так
Подсветка синтаксиса языка cpp
i=0; j=n;
while(1){
j=(j/2);
n=n%2;
if(!n)s[i]='0';else s[i]='1';
i++;
if(!j)break;
n=j;
}
s[i]='\0';
Здесь массив s (символьный) получает биты числа, i - нумерует количество битов.
Ну все, наслаждайтесь программированием.
Да, чуть не забыл. Порядок в массиве s надо будет потом изменить на противоположный, но это уже совсем просто, я уж не говорю о поиске подстроки в строке.