Главная страница
    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.057 c
2-1183654535
Romm
2007-07-05 20:55
2007.07.29
Из страницы в приложение


6-1161766282
Denizzz
2006-10-25 12:51
2007.07.29
ServerSocket, ClientSocket и "выдергивание шланга из сетевухи"


2-1183624901
nord489
2007-07-05 12:41
2007.07.29
MainMenu


15-1183008937
Slider007
2007-06-28 09:35
2007.07.29
С днем рождения ! 28 июня 2007 четверг


15-1182927174
Ega23
2007-06-27 10:52
2007.07.29
DragAndDrop - краткий ликбез





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский