переменная в двоичной системе
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
-
- Сообщения: 15
- Зарегистрирован: 21 июн 2006, 20:15
- Контактная информация:
возможно ли в Дельфи об'явить переменную, чтоб она была в двоичной системе? Или надо писать функцию для перевода десятичной переменной в двоичную?
Собственно, мне надо заполнить таблицу mXn единицами и нулями, так, чтобы перебрать все возможные варианты.
Ну, например для n=4 должно получиться:
0001
0010
0011
0100
0101, и т.д.
Я так понимаю, что проще всего просто записывать в строки таблицы последовательные числа в двоичной системе.
Может подскажет кто, как бы это попроще сделать?
Т.к. это очень маленький кусочек программки, то не хочется загромождать своими придумками....
Собственно, мне надо заполнить таблицу mXn единицами и нулями, так, чтобы перебрать все возможные варианты.
Ну, например для n=4 должно получиться:
0001
0010
0011
0100
0101, и т.д.
Я так понимаю, что проще всего просто записывать в строки таблицы последовательные числа в двоичной системе.
Может подскажет кто, как бы это попроще сделать?
Т.к. это очень маленький кусочек программки, то не хочется загромождать своими придумками....
хоть и крашенная, но почти блондинка, поэтому говорите, пожалуйста, медленней и попроще 

-
- Сообщения: 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
- Контактная информация:
Спасибо!
Работает
А можно об'яснить для крашеной (может не все еще потеряно?...) блондинки?
ops:
"shr" - это что?
и зачем здесь:
Работает

А можно об'яснить для крашеной (может не все еще потеряно?...) блондинки?

"shr" - это что?
и зачем здесь:
"and 1=1' оно же всегда верно...If i and 1=1 then Result:='1'+Result else Result:='0'+Result;
хоть и крашенная, но почти блондинка, поэтому говорите, пожалуйста, медленней и попроще 

shr это сдвиг числа вправо. Т.е. если число перевести в двоичную систему, зачеркнуть самую правую цифру и дописать слева ноль, то получистя shr 1;
А по второму вопросу я сам не знаю.
А по второму вопросу я сам не знаю.
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
shr - операция побитового сдвига вправо (SHift Right) эквивалентно делению на 2
приоритет операции and выще, т.е. "If (i and 1)=1 then ..."
приоритет операции and выще, т.е. "If (i and 1)=1 then ..."

-
- Сообщения: 15
- Зарегистрирован: 21 июн 2006, 20:15
- Контактная информация:
а для тупых можно?Игорь Акопян писал(а): приоритет операции and выще, т.е. "If (i and 1)=1 then ..."


если и "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
например:
i := 0101 (5)
(i and 1) = 1 // true
(i and 2) = 2 // false
если разложить побитно
0101 (5) and 0010 (2) = 0000
-
- Сообщения: 15
- Зарегистрирован: 21 июн 2006, 20:15
- Контактная информация:
А я совсем и не программист :!:vunder писал(а):i and 1 - это побитовая операция (в школе учиться надо)
....
я использую программирование только как инструмент и "доучиваю" или разбираюсь с чем-то новым по мере необходимости.
Сейчас вот первый раз появилась на подобном форуме и книжки парраллельно читаю :roll: - поняла, что нехватает мне таких вот отрывочных знаний.
И вопросы тупые и "а все-таки как..." обычно появляются, когда человек хочет на самом деле разобраться, а не просто взять и воткнуть в программу чужой код! Так что "в школе учиться надо" - не к месту! :twisted:
Лучше бы ссылочку кинули где об этом почитать...
хоть и крашенная, но почти блондинка, поэтому говорите, пожалуйста, медленней и попроще 

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