Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1183130798
linzaolog
2007-06-29 19:26
2007.07.29
аналог ListBox


15-1183145334
Иксик
2007-06-29 23:28
2007.07.29
Еще один скандальный фильм Мура


15-1183462782
avsam
2007-07-03 15:39
2007.07.29
Плагин для Delphi 6 линии begin end


10-1135067510
Alkid
2005-12-20 11:31
2007.07.29
Предупреждение о наличии работающих COM-объектов


2-1183615235
_Asph
2007-07-05 10:00
2007.07.29
Как в потомке запретить использование метода наследника?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский