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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2009, 14:06   #1
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
Вопрос Символ в двоичный код

Вопрос такой: как перевести любой символ (число, букву, знак) в 8 чисел (ну то есть двоичная запись)?
k1r1ch вне форума Ответить с цитированием
Старый 09.09.2009, 14:10   #2
postal2
Форумчанин
 
Аватар для postal2
 
Регистрация: 31.10.2008
Сообщений: 215
По умолчанию

Сначала перевести по таблице, а потом перевести число в двоичную систему
Чтобы перевести в простое (десятичное) число есть функция ord(h), где h - символ. С переводом в двоичную - в интернете много примеров.
[Ferox]

Последний раз редактировалось postal2; 09.09.2009 в 14:15.
postal2 вне форума Ответить с цитированием
Старый 09.09.2009, 14:12   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Формулу перевода из числа в двоичку знаешь?
Вот ord(символ) даст тебе число - его и переводи по формуле.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.09.2009, 14:23   #4
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Код:
function IntToBin(n:Integer):String; 
begin 
Result:=''; 
while n<>0 do 
begin 
if n and 1=0 then Result:='0'+Result else Result:='1'+Result; 
n:=n shr 1; 
end; 

var s:string;

s:=IntToBin(ord('F'))//результат 1000110
end;
SERG1980 вне форума Ответить с цитированием
Старый 09.09.2009, 14:27   #5
postal2
Форумчанин
 
Аватар для postal2
 
Регистрация: 31.10.2008
Сообщений: 215
По умолчанию

Код:
if n and 1=0 then
Не понял - а это когда 1 будет равен 0?!
[Ferox]
postal2 вне форума Ответить с цитированием
Старый 09.09.2009, 14:50   #6
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
По умолчанию

2SERG1980: "//результат 1000110"
А почему цифр семь - символ это же 8 бит?
P.S.: Проверил. Так их выдается аж 11!
2Stilet: Я попытался написать, но у разных букв почему-то разное кол-во цифр !
Вот мой код:
Код:
function IntToBin(Input: integer): string;
var i: integer; WorkStr: string;
begin
  while Input > 1 do
    begin
      WorkStr := WorkStr + IntToStr(Input mod 2);
      Input := Input div 2;
      if Input = 1 then WorkStr := WorkStr + '1';
    end;
  for i := Length(WorkStr) - 1 downto 0 do
    Result := Result + WorkStr[i];
end;

Последний раз редактировалось k1r1ch; 09.09.2009 в 14:55.
k1r1ch вне форума Ответить с цитированием
Старый 09.09.2009, 14:55   #7
postal2
Форумчанин
 
Аватар для postal2
 
Регистрация: 31.10.2008
Сообщений: 215
По умолчанию

Из десятичного числа в двоичное
Код:
function dec2bin(x:integer):string;
var s:string;
begin
  s:='';
  while x>0 do
  begin
     s:=chr(ord('0')+x mod 2)+s;
     x:=x div 2;
  end;
dec2bin:=s;
end;
Из двоичного числа в десятичное

Код:
function bintodec(s:string{двоичное число надо перевести в строку, пихать сюда символы не стоит}):integer;
var i,x:integer;
begin
  x:=0;
  for i:=1 to length(s) do
     x:=(x + ord(s[i])-$30) shl 1;
result:= x shr 1;
end;
Обратите внимание на входные параметры!!!
[Ferox]

Последний раз редактировалось postal2; 09.09.2009 в 15:17.
postal2 вне форума Ответить с цитированием
Старый 09.09.2009, 15:10   #8
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
Восклицание

Сейчас на англ. букву 7 цифр, на русскую 11 цифр, а как я понимаю, символ кодируется 8 битами, то есть 8 единиц или нулей. Я прав или я что-то напутал?
k1r1ch вне форума Ответить с цитированием
Старый 09.09.2009, 15:16   #9
postal2
Форумчанин
 
Аватар для postal2
 
Регистрация: 31.10.2008
Сообщений: 215
По умолчанию

В таблице ansi английские буквы занимают ~50-70 позицию, русские - ~100-150 (не помню точно). Отсюда и разница в размере
[Ferox]
postal2 вне форума Ответить с цитированием
Старый 09.09.2009, 15:22   #10
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
Вопрос

Хмм, а че тогда нам разгоняла учительница информатики, она говорила что типо например у Q и у Й один код в 8 цифр??
k1r1ch вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Десятично-двоичный преобразователь (хрестоматийная задача любой ЭВМ) Sasha_Smirnov Microsoft Office Word 13 06.10.2013 11:01
Двоичный поиск в Turbo C++ 3.0 Xeon332 Помощь студентам 3 29.01.2009 04:19
Двоичный поиск элемента в массиве (Си под DOS) Zid@ne Общие вопросы C/C++ 7 24.12.2008 18:07
Перевод вещественного числа в двоичный код shepelin Свободное общение 9 06.07.2008 10:00
Двоичный код masterx13 Паскаль, Turbo Pascal, PascalABC.NET 4 14.11.2007 20:08