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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2010, 18:08   #1
alexprey
Форумчанин
 
Регистрация: 25.05.2010
Сообщений: 169
По умолчанию Как перевести число из 256 системы счисления в десятичную ?

Ну суть вопроса в заголовке. Как перевести строчку, в которой записано число в 256 cc, в 10 cc
Использую вот такую функцию, но почему то получается отрицательное число
Код:
function Pow(c,s: integer): integer;
 var i: integer;
begin
 Result:= c;
 if s = 1 then exit;
 if s = 0 then
 begin
  Result:= 1;
  exit;
 end;
 for i:= 2 to s do
  Result:= Result*c;
end;

function RawCodeToInt(raw: string): integer;
 var i,l: integer;
begin
 Result:= 0;
 l:= Length(raw);
 for i:= 1 to l do
  Result:= Result+Byte(raw[i])*Pow(256,l-1);
end;
Что за бредовое название ? "Base256 -> Base10"
Исправил. Неужели сразу нельзя было написать по-человечески ?

Последний раз редактировалось mihali4; 23.11.2010 в 19:56.
alexprey вне форума Ответить с цитированием
Старый 23.11.2010, 21:52   #2
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

Вот так надо в теории:
256 в 10:
Код:
J=21; R=18;
JR50=0*256^0+5*256^1+R*256^2+J*256^3=0+1280+1179648+352321536=353502464
10 в 256:
Код:
353502464/256=1380869 (остаток 0)
1380869/256=5394 (остаток 5)
5394/256=21 (остаток 18)
Итог: 21,18,5,0, с учетом условий: JR50
Все просто, думаю написать программу будет не сложно.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"

Последний раз редактировалось ImmortalAlexSan; 23.11.2010 в 22:16.
ImmortalAlexSan вне форума Ответить с цитированием
Старый 23.11.2010, 22:10   #3
alexprey
Форумчанин
 
Регистрация: 25.05.2010
Сообщений: 169
По умолчанию

ну там символ соответствует Ansi коду, ошибка где то у меня в вычислениях, а где не пойму
alexprey вне форума Ответить с цитированием
Старый 23.11.2010, 22:27   #4
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

Вот смотрите. Ord - конвертирует любой тип в число (в вашем случае - символ типа Char или PChar не важно), Chr - число в символ. Корректно для конвертации эти функции вы использовать не сможете, так как в таблице ASCII встречаются символы, которые визуально вы не увидите, как получить их значение - я увы не знаю, так что придется сделать поправку на ошибку с перечислением и переводом только тех символов, чьи значения в таблице больше 15-ти. Т.е. (0,1,2...F)=(0,1,2...15) забить в массив, от куда их и извлекать.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Старый 23.11.2010, 22:32   #5
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

Вообще... Вот вам мой личный модуль с переводом в двоичную СС из 10-ой и обратно (только для типа Byte), дальше сами думаю разберетесь, поменяете парочку строк и готово.
Вложения
Тип файла: zip Convertation.zip (408 байт, 14 просмотров)
"Тебе то может на меня и насрать, но твои глаза меня обожают!"

Последний раз редактировалось ImmortalAlexSan; 23.11.2010 в 22:35.
ImmortalAlexSan вне форума Ответить с цитированием
Старый 24.11.2010, 16:48   #6
alexprey
Форумчанин
 
Регистрация: 25.05.2010
Сообщений: 169
По умолчанию

Пример, что в первом посте не подходит, так как
J = 74
R = 82
У меня raw строгой длинны (4 символа)
Когда я попробовал сделать так
Код:
Byte(raw[1])*256*256*256+Byte(raw[2])*256*256+Byte(raw[3])*256+Byte(raw[4])
То все стало нормально.
alexprey вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевести вещественное число в 10 чную систему счисления из двоичной Shamonya Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 11.11.2010 16:29
Как перевести из двоичной системы счисления в восьмеричную и шестнадцатеричную koysara Помощь студентам 3 13.10.2010 19:10
"Число в p-ичной системе счисления. Перевести число в q-ичную систему" и не только :) Zinder Паскаль, Turbo Pascal, PascalABC.NET 4 10.04.2010 14:20
перевести числа с одной системы счисления в другую Informer Общие вопросы C/C++ 3 23.11.2007 16:21