Форум: "Начинающим";
Текущий архив: 2007.07.29;
Скачать: [xml.tar.bz2];
ВнизПредставить число в двоичном виде. Найти похожие ветки
← →
AlexanderMS © (2007-07-05 18:56) [0]Скажите, пожалуйста, как оптимальнее представить число типа integer в виде массива c 32 элементами, представляющими собой соответствующие биты данного числа? Знаю, как реализовать "ручной" алгоритм (делим столбиком, потом записываем остатки и т. п.), но хотелось бы как-нибудь покрасивей и покороче. Чтобы и машине приятно было :).
← →
{RASkov} © (2007-07-05 19:15) [1]Вот вроде так :)
S:="";
repeat
K:= N div 2;
if (N mod 2)>0 then S:="1"+S else S:="0"+S;
N:=K;
until N<=0;
где N - это и есть то число которое нужно "представить" : Int64
K - временная переменная : Int64
S - строка результата : String;
← →
Apollon © (2007-07-05 19:31) [2]
var
i, n: integer;
r: array[0..31] of byte;
begin
n := 5000;
for i := 0 to 31 do
r[i] := n shl i shr (31 - i)
end;
← →
Apollon © (2007-07-05 19:48) [3]сор, наврал малость
var
i, n: integer;
r: array[0..31] of byte;
begin
n := 5000;
for i := 0 to 31 do
r[i] := n shl i shr 31;
end;
← →
Дмитрий К © (2007-07-05 20:07) [4]А я делал так:
r[i] := Byte((n and (1 shl i)) = (1 shl i));
← →
AlexanderMS © (2007-07-06 05:31) [5]Большое спасибо всем.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.07.29;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.038 c