переменная в двоичной системе

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

чайничек с крышечкой...
Сообщения: 15
Зарегистрирован: 21 июн 2006, 20:15
Контактная информация:

возможно ли в Дельфи об'явить переменную, чтоб она была в двоичной системе? Или надо писать функцию для перевода десятичной переменной в двоичную?
Собственно, мне надо заполнить таблицу mXn единицами и нулями, так, чтобы перебрать все возможные варианты.
Ну, например для n=4 должно получиться:
0001
0010
0011
0100
0101, и т.д.
Я так понимаю, что проще всего просто записывать в строки таблицы последовательные числа в двоичной системе.

Может подскажет кто, как бы это попроще сделать?
Т.к. это очень маленький кусочек программки, то не хочется загромождать своими придумками....
хоть и крашенная, но почти блондинка, поэтому говорите, пожалуйста, медленней и попроще ;)
Blood_Magic
Сообщения: 273
Зарегистрирован: 30 июн 2005, 14:53

Код: Выделить всё

function IntToBin(const Value,Digits:integer):string;
var
  i:integer;
begin
  i:=Value;
  Result:='';
  While i>0 do
    begin
      If i and 1=1 then Result:='1'+Result else Result:='0'+Result;
      i:=i shr 1;
    end;
  While Length(Result)<Digits do Result:='0'+Result;
end;
- Чем юзер похож на обезьяну?
- Он жмет на все, что жмется, дергает все, что дергается и крутит все, что крутится.
- Чем юзер отличается от обезьяны?
- У обезьяны хватает ума не воспроизводить ту последовательность, которая приводит к краху системы.
чайничек с крышечкой...
Сообщения: 15
Зарегистрирован: 21 июн 2006, 20:15
Контактная информация:

Спасибо!
Работает :)

А можно об'яснить для крашеной (может не все еще потеряно?...) блондинки? :o ops:
"shr" - это что?
и зачем здесь:
If i and 1=1 then Result:='1'+Result else Result:='0'+Result;
"and 1=1' оно же всегда верно...
хоть и крашенная, но почти блондинка, поэтому говорите, пожалуйста, медленней и попроще ;)
Zromantmp
Сообщения: 18
Зарегистрирован: 17 май 2006, 12:36
Контактная информация:

shr это сдвиг числа вправо. Т.е. если число перевести в двоичную систему, зачеркнуть самую правую цифру и дописать слева ноль, то получистя shr 1;
А по второму вопросу я сам не знаю.
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

shr - операция побитового сдвига вправо (SHift Right) эквивалентно делению на 2
приоритет операции and выще, т.е. "If (i and 1)=1 then ..."
Изображение
чайничек с крышечкой...
Сообщения: 15
Зарегистрирован: 21 июн 2006, 20:15
Контактная информация:

Игорь Акопян писал(а): приоритет операции and выще, т.е. "If (i and 1)=1 then ..."
а для тупых можно? :o ops: Зачем все-таки там "1"? Даже с приоритетм - не вижу разницы :(
если и "i', и "1" равны "1"... чем это отличается от если и=1"?
хоть и крашенная, но почти блондинка, поэтому говорите, пожалуйста, медленней и попроще ;)
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

это стандартная проверка установленно бита.
например:
i := 0101 (5)
(i and 1) = 1 // true
(i and 2) = 2 // false

если разложить побитно
0101 (5) and 0010 (2) = 0000
vunder
Сообщения: 74
Зарегистрирован: 10 май 2006, 12:19
Откуда: Санкт-Петербург
Контактная информация:

i and 1 - это побитовая операция (в школе учиться надо)
Например, число 13 имеет битовое представление 1101. Если к нему применить битовую операцию с числом 1 (0001), то результат будет 0001
чайничек с крышечкой...
Сообщения: 15
Зарегистрирован: 21 июн 2006, 20:15
Контактная информация:

vunder писал(а):i and 1 - это побитовая операция (в школе учиться надо)
....
А я совсем и не программист :!: :wink:
я использую программирование только как инструмент и "доучиваю" или разбираюсь с чем-то новым по мере необходимости.
Сейчас вот первый раз появилась на подобном форуме и книжки парраллельно читаю :roll: - поняла, что нехватает мне таких вот отрывочных знаний.
И вопросы тупые и "а все-таки как..." обычно появляются, когда человек хочет на самом деле разобраться, а не просто взять и воткнуть в программу чужой код! Так что "в школе учиться надо" - не к месту! :twisted:
Лучше бы ссылочку кинули где об этом почитать...
хоть и крашенная, но почти блондинка, поэтому говорите, пожалуйста, медленней и попроще ;)
Blood_Magic
Сообщения: 273
Зарегистрирован: 30 июн 2005, 14:53

чайничек с крышечкой... писал(а):Лучше бы ссылочку кинули где об этом почитать...
http://www.r0.ru - вот ссылочка
- Чем юзер похож на обезьяну?
- Он жмет на все, что жмется, дергает все, что дергается и крутит все, что крутится.
- Чем юзер отличается от обезьяны?
- У обезьяны хватает ума не воспроизводить ту последовательность, которая приводит к краху системы.
Закрыто