Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2010, 22:09   #1
alenkov
Пользователь
 
Регистрация: 23.07.2010
Сообщений: 18
По умолчанию Как удалить бит?

Доброго всем времени суток!!!

Есть функция
Код:
function IntToBin(Value: integer; Digits: integer): string;
var
  i: integer;
begin
  result := '';
  for i := 0 to Digits - 1 do begin
   if Value and (1 shl i) > 0
      then result := '1' + result
      else result := '0' + result;
  end;
   end;
Результат выводится в поле Memo1

Код:
procedure TForm1.StrToMemoFile(const St: String);
var
  I: Integer;
    S: String;
  
begin
   S := S + ' ' + inttoBin(Ord(St[I]),8);   // Bin
           memo1.Text := memo1.text + S;
        end;
Прсьба подсказать как разложить строки на биты, найти сочетание 111110 и из нее удалить 0 (6-й бит).Если можно то кодом
Спасибо!!!!
alenkov вне форума Ответить с цитированием
Старый 12.11.2010, 22:17   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как разложить строки на биты
Ух ты... Новый писк хакерской моды?
Допустим есть s:string тогда
Код:
for i;=0  to length(s) do Memo.Lines.Add(IntToBin(ord(s[i]),8));
Должон подать тебе раскладку в битах.
А вот насчет удаления 6 бита - это тебе нужно подправить функу IntToBin
в цикле
Код:
if i=6 then continue
Чтоб она шестой бит просто пропускала.

Ферштейн?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.11.2010, 22:27   #3
alenkov
Пользователь
 
Регистрация: 23.07.2010
Сообщений: 18
По умолчанию

Она будет пропускать 6-й бит в найденных 111110 ?
alenkov вне форума Ответить с цитированием
Старый 12.11.2010, 22:31   #4
alenkov
Пользователь
 
Регистрация: 23.07.2010
Сообщений: 18
По умолчанию

Как это будет выглядеть в функции IntToBin
alenkov вне форума Ответить с цитированием
Старый 12.11.2010, 23:16   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я написал как. Посмотри выше
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.11.2010, 08:26   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

позволю себе прокомментировать совет Stilet (Виталий, простите, но, похоже, не может он понять, что и как... 100% функцию где-то готовую взял. И не понимает, что там как и как она работает...

Цитата:
Код:
function IntToBin(Value: integer; Digits: integer; SkipBit : integer): string;
var
  i: integer;
begin
  result := '';
  for i := 0 to Digits - 1 do begin
     if i<>(SkipBit-1) then begin
       if Value and (1 shl i) > 0
          then result := '1' + result
          else result := '0' + result;
     end;
   end;
   end;
внимание, SkipBit (бит, который пропустить, в данном примере передаётся при нумерации бит справа налево начиная с 1 (с единицы). Если удобнее нумеровать биты с нуля = то в условии сравнени выкинуть -1 (т.е. if i<>SkipBit then begin ... )
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.11.2010, 13:02   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
похоже, не может он понять, что и как...
Плохо. Оч. плохо.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.11.2010, 23:17   #8
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Цитата:
Ух ты... Новый писк хакерской моды?
Эм... Почему?


Цитата:
Есть функция
Ну... Это как бы хорошо...
Цитата:
Прсьба подсказать как разложить строки на биты, найти сочетание 111110
Ну разложить-то наверное как раз той самой функцией?
А что значит "найти сочетание"? Где найти?
Цитата:
и из нее удалить 0 (6-й бит)
Опять же не понятно... Удалить "ноль" или 6-й бит? И из кого удалить? Из строки которая в Memo? Или из числа в массиве?
Если из числа то что значит "удалить": 6-й бит занулить или со сдвигом куда-то? А может весь элемент массива удалить?

Если всё-таки из Memo то Delete(S, 6, 1) никто не отменял...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 13.11.2010, 23:28   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Эм... Почему?
Ну... Байты разложить, число разложить, даже символ ACSII - это я понимаю.
А строку... Это ж сначала ее нужно разложить на символ, а если это китайский иероглиф? В общем жорсть.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.11.2010, 12:43   #10
alenkov
Пользователь
 
Регистрация: 23.07.2010
Сообщений: 18
По умолчанию

из числа 111110 6-й бит сдвинуть в лево
alenkov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ковертирование из png 24 бит в png 8 бит isat Общие вопросы .NET 0 22.03.2010 13:38
Как различить 16-бит exe и 32? Alex Cones Операционные системы общие вопросы 14 10.03.2010 14:58
Что это?Примечание?Как удалить?Как изменить? vfv Microsoft Office Excel 3 07.03.2010 13:51
Как установить i-й бит целого числа qwerty09 Общие вопросы C/C++ 4 09.07.2009 00:20
как удалить анти вирус( касперский 2006)если она не работает и ее не возможно удалить Alar Общие вопросы Delphi 0 29.10.2006 21:36