Модераторы: Snowy, Alexeis, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Визуализация порадяка битов 
:(
    Опции темы
<Spawn>
Дата 17.3.2003, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 2
Всего: 64



Есть ли возможность визуализировать биты от 0 до 255 (0000 0000 до 1111 1111) стандартными способами?? Мне в моем случае необходимо заполнить столбец TStringGrid этими значениями. Я уже придумал цикл заполнения, но он мне он не нравиться и я хочу узнать существуют ли стандартные методы?


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
AntonSaburov
Дата 17.3.2003, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118



Вывод двоичных чисел стандартными средствами - не видел. Думаю, что придется оставить то, что ты написал.
PM MAIL WWW ICQ   Вверх
serious
Дата 18.3.2003, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 15.2.2003
Где: Пенза

Репутация: нет
Всего: 1



Кстати, не подскажите как байт на биты разложить?


--------------------
Я знаю то, что ничего не знаю, а некоторые не знают и этого.
PM MAIL   Вверх
<Spawn>
Дата 18.3.2003, 02:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 2
Всего: 64



В смысле? 1 байт=8 бит.


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
serious
Дата 18.3.2003, 05:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 15.2.2003
Где: Пенза

Репутация: нет
Всего: 1



Цитата
В смысле? 1 байт=8 бит.

Ну вот, допустим, есть переменная типа байт, в которой какой-нибудь байт хранится; есть еще, допустим, строка. Так вот, как в эту строку записать что-то вроде "00101100"?


--------------------
Я знаю то, что ничего не знаю, а некоторые не знают и этого.
PM MAIL   Вверх
Song
Дата 18.3.2003, 05:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: нет
Всего: 4



Переведи в двоичную форму. Как? Это школьный курс информатики.


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
<Spawn>
Дата 18.3.2003, 05:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 2
Всего: 64



Цитата(serious @ 17.3.2003, 21:38)
Цитата
В смысле? 1 байт=8 бит.

Ну вот, допустим, есть переменная типа байт, в которой какой-нибудь байт хранится; есть еще, допустим, строка. Так вот, как в эту строку записать что-то вроде "00101100"?

Я тут поэтому тему и запостил)) Меня ведь тоже подобное интересует.)


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
<Spawn>
Дата 18.3.2003, 05:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 2
Всего: 64



Я думаю, что ето токо на ассемблере можно сделать, если не сужествует уже готовых средств. Прийдется мне воспользоваться своим циклом заполенния 256 строк StringGrid'a значениями от 0000 0000 до 1111 1111((


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
serious
Дата 18.3.2003, 05:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 15.2.2003
Где: Пенза

Репутация: нет
Всего: 1



Цитата(Song @ 17.3.2003, 21:55)
Переведи в двоичную форму. Как? Это школьный курс информатики.

Ну хорошо, тогда так: есть 8 переменных (пусть boolean) и в каждую надо записать соответственно true или false. Как?


--------------------
Я знаю то, что ничего не знаю, а некоторые не знают и этого.
PM MAIL   Вверх
<Spawn>
Дата 18.3.2003, 06:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 2
Всего: 64



Цитата(Song @ 17.3.2003, 21:55)
Переведи в двоичную форму. Как? Это школьный курс информатики.

А ведь и точно)))) Совсем из головы выпали формулы перевода, хотя информатики у нас и не было почти, но я их помню


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
stab
Дата 18.3.2003, 06:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: нет
Всего: 48



млин, какой ассемблер, какие формулы smile.gif

var
b: Byte;
s: String;

...

b := 3;
s := '';
for i := 0 to 7 do
if (b and (1 shl i)) <> 0 then
s := s + '1'
else
s := s + '0';

ShowMessage(s);


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
serious
Дата 19.3.2003, 01:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 15.2.2003
Где: Пенза

Репутация: нет
Всего: 1



Точнее так:

Код

var
 b : byte;
 s : string;
 i : integer;

 temp : array [0..7] of byte;
begin
 b := 5;
 s := '';

 for i := 0 to 7 do
   if (b and (1 shl i)) <> 0 then
     temp[7-i] := 1
   else
     temp[7-i] := 0;

 for i := 0 to 7 do
   s := s+IntToStr (temp[i]);

ShowMessage (s);




--------------------
Я знаю то, что ничего не знаю, а некоторые не знают и этого.
PM MAIL   Вверх
stab
Дата 19.3.2003, 04:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: нет
Всего: 48



не проше так... smile.gif

var
b: Byte;
s: String;
i: Integer;
begin
b := 3;
s := '';
for i := 1 to 8 do
if (b and ((1 shl 8) shr i)) <> 0 then
s := s + '1'
else
s := s + '0';
ShowMessage(s);
end;



--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
stab
Дата 19.3.2003, 04:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: нет
Всего: 48



вот еще вариант, основное отличие от всех остальных в том, что в данном случае данные представляются не структурированными, очень удобно для побитых дампов памяти. Есть только ограничение на количество одновременно анализируемых бит в 65536 штук = 8Kb.

function TestBit(var buf; bit: Word): Boolean;
asm
bt [EAX], DX
setc AL
end;

function GetBits(var buf; bits: Word): String;
var
i: Integer;
begin
SetLength(Result, bits);
for i := 0 to bits - 1 do
if TestBit(buf, i) then
Result[bits - i] := '1'
else
Result[bits - i] := '0';
end;

procedure TForm1.Button1Click(Sender: TObject);
var
data: array[1..3] of Byte;
begin
data[1] := 3;
data[2] := $FF;
data[3] := 128;
Caption := GetBits(data, 3 * 8);
end;



--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
neutrino
Дата 19.3.2003, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



Esli skorost' kritichna:
Цитата


function ToBin(num: Integer): ^string;
type TCharArr = array[1..16] of Char;
var str: TCharArr = "0000000000000000";
begin
 asm
     mov  ax, [num]
     lea  si, str
next:shr  ax, 1
     adc  [si], 48
     or   ax, ax
     jnz  next

 end;
 Result := @str;
end;


Hotja, ja mog oshibit'sja v sintaksise. V paskale ni razu ne delal svoih vstavok na ASMe. I luchshe sprosit' Chingachguka.

P.S. Admin, kogda budet translit???


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.1399 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.