Перевод числа из 10 системы счисления в любую другую
Здравствуйте, я с php в отношениях умеренных и никак не могу понять одну вещь вот задание:
Есть 3 поля текстовых и 1 кнопка
в первое поле мы вводим Число которое нужно перевести
во второе поле мы вводим Систему Счисления в которую мы переведем Число
а в третье поле выводится ответ
как это выглядит на странице:
[ПОЛЕ1 — Число][ПОЛЕ2-В какую СС][Кнопка][ПОЛЕ3 — Ответ]
Я нашел такую функцию как
суть этой функции понятна переводит из любой в любую
вот мои действия:
Создаю файл index.html
Создаю php файл и в нем пишу:
Вроде все тут понятно что
$number = $_GET[‘num1’]; — получает значение (Число) из index.html
$tobase = $_GET[‘num2’]; — получает значение (В какую сс) из index.html
$frombase = 10; — Задал сразу в 10 сс
Открываю в браузере index.html ввожу значения , нажимаю кнопку, открывается другая страница *.php и выводит вот такое сообщение:
Parse error: syntax error, unexpected T_VARIABLE in Z:\home\test1.ru\www\ss.php on line 5
В чем проблема, все же верно написано.
И если можно то лучше по заданию вот так (*.php) т.е все в одном файле в не как у меня в 2х..
а то я сделал не по заданию ибо не понимаю как сделать чтоб не потерять значения введенные в поле1 и поле2. мб присвоением данных полей в перемененные и потом воспроизвести их назад (не пробовал)..
Помогите пожалуйста :с
Перевод дробной части числа из десятичной системы счисления в любую другую систему счисления
Здравствуйте как перевести дробной части числа из десятичной системы счисления в любую другую.
Перевод числа из любой системы счисления в любую другую
нужно написать код. Перевод числа из любой системы счисления в любую. Что бы там было основание.
Перевод числа из десятичной системы счисления в любую другую
написать программу переводящую число из десятичной системы счисления в любую систему счисления
Перевод из любой системы счисления в любую другую систему счисления (2-36)
Привет. 1 курс факультета ИВТ, изучаю С++ только один месяц. Из основного прошли строки, массивы.
Перевод в различные системы счисления
Перевод в различные системы счисления
base_convert
Конвертация числа из одной системы счисления в другую.
Синтаксис:
string base_convert(string $number, int $frombase, int $tobase)
Переводит число $number (заданное как строка в системе счисления по основанию $frombase) в систему по основанию $tobase. Параметры $frombase и $tobase могут принимать значения только от 2 до 36 включительно. В строке $number цифры обозначают сами себя, а буква a соответствует 11, b -12, и т.д. до z, которая обозначает 36. Например, следующие команды выведут 11111111 (8 единичек), потому что это — не что иное, как представление шестнадцатиричного числа FF в двоичной системе счисления:
$x = base_convert(«FF»,16,2); //$x = 11111111
$x = base_convert(«11111111»,2,16); //$x = FF
$x = base_convert(«200»,10,16); //$x = C8
bindec
Производит конвертацию двоичного числа в десятичное.
Синтаксис:
int bindec(string binary_string)
Преобразует двоичное число, заданное в строке binary_string, в десятичное число. Максимальное число, которое еще может быть преобразовано, равно 2 147 483 647
$x = bindec(11111111); // $x = 255
$x = bindec(10101010); // $x = 170
$x = bindec(2147483647); // $x = 1111111111111111111111111111111
decbin
Производит конвертацию десятичного числа в двоичное.
Синтаксис:
string decbin(int $number)
Возвращает строку, представляющую собой двоичное представление целого числа $number. Максимальное число, которое еще может быть преобразовано, равно 2 147 483 647, которое выглядит как 31 единичка в двоичной системе.
Существует аналогичные функции для восьмеричной и шестнадцатиричной систем. Называются они так же, только вместо «bin» подставляются соответственно «oct» и «hex».
$x = decbin(255); // $x = 11111111
$x = decbin(2147483647); // $x = 1111111111111111111111111111111
dechex
Производит конвертацию десятичного числа в шестнадцатеричное.
Синтаксис:
string dechex(int number)
Возвращает строку, представляющую собой шестнадцатеричное представление целого числа number. Максимальное число, которое еще может быть преобразовано, равно 2 147 483 647
$x = dechex(2147483647); // $x = 7fffffff
decoct
Производит конвертацию десятичного числа в восьмеричное.
Синтаксис:
string decoct(int number)
Возвращает строку, представляющую собой восьмеричное представление целого числа number. Максимальное число, которое еще может быть преобразовано, равно 2 147 483 647
$x = dechex(2147483647); // $x = 17777777777
hexdec
Производит конвертацию шестнадцатеричного числа в десятичное.
Синтаксис:
int hexdec(string hex_string)
Преобразует шестнадцатеричное число, заданное в строке hex_string, в десятичное число. Максимальное число, которое еще может быть преобразовано, равно 7fffffff
$x = hexdec(7fffffff); // $x = 2147483647
octdec
Производит конвертацию восьмеричного числа в десятичное.
Синтаксис:
int octdec(string octal_string)
Преобразует восьмеричное число, заданное в строке octal_string, в десятичное число. Максимальное число, которое еще может быть преобразовано, равно 17777777777
$x = octdec(17777777777); // $x = 2147483647
deg2rad
Производит конвертацию градусов в радианы.
Синтаксис:
double deg2rad(double number)
Преобразует градусы, заданные в параметре number, в радианы.
rad2deg
Производит конвертацию радианов в градусы.
Синтаксис:
double rad2deg(double number)
Преобразует радианы, заданные в параметре number, в градусы.
number_format
Синтаксис:
number_format($number, $decimals, $dec_point=».», $thousands_sep=»,»);
Эта функция форматирует число с плавающей точкой с разделением его на триады с указанной точностью. Она может быть вызвана с двумя или четырьмя аргументами, но не с тремя! Параметр $decimals задает, сколько цифр после запятой должно быть у числа в выходной строке.
Параметр $dec_point представляет собой разделитель целой и дробной частей, а параметр $thousands_sep — разделитель триад в числе (если указать на его месте пустую строку, то триады не отделяются друг от друга).
Похожие главы из других книг:
2.4. Перевод
2.4. Перевод Перевод дает возможность наблюдать механизм конкретизации заданий отсутствия в работе. При переводе басни о волке и ягненке с английского языка на японский требуется упомянуть о том месте у реки, где находятся действующие лица, хотя этого не требуется в
Перевод
Перевод Знание какого-либо иностранного языка открывает перед вами широчайшие горизонты на рынке удаленной работы. Однако места, на которые вы можете рассчитывать, будут сильно зависеть от уровня ваших знаний.Если вы знаете иностранный язык в совершенстве, то вам будут
14.3. Различные примеры
14.3. Различные примеры В этом пункте представлены несколько примеров для обеспечения безопасности вашей
2. Системы счисления
2. Системы счисления Под системой счисления подразумевается набор правил наименования и записи чисел. Различают позиционные и непозиционные системы счисления.Система счисления называется позиционной, если значение цифры числа зависит от местоположения цифры в числе.
Различные системы координат
Различные системы координат Основной системой координат в AutoCAD является прямоугольная декартова система координат, которая называется мировой системой координат (МСК).Она используется по умолчанию при создании нового чертежа. Направление осей демонстрируется с
5.18. Преобразование системы счисления
5.18. Преобразование системы счисления Ясно, что любое целое число можно представить в любой системе счисления, поскольку хранятся эти числа в двоичном виде. Мы знаем, что Ruby умеет работать c целыми константами, записанными в любой из четырех наиболее популярных систем.
14.9. Различные сценарии
14.9. Различные сценарии Приведем еще несколько примеров. Не претендуя на оригинальность, мы отнесли их к категории
Другие основания системы счисления
Другие основания системы счисления Пользователи компьютеров часто применяют системы счисления по основанию 8 или 16. Так как 8 и 16 являются степенями 2, эти системы более тесно связаны с двоичной системой счисления компьютеров, чем десятичная система. Восьмеричные числа
5.1. Различные файловые системы
5.1. Различные файловые системы Linux поддерживает много различных файловых систем. Начинающий пользователь просто теряется, когда видит такое многообразие выбора, — ведь в качестве корневой файловой системы доступны: ext2, ext3, ext4, XFS, ReiserFS, JFS.«Родной» файловой системой Linux
Различные системы координат
Различные системы координат Основной системой координат в AutoCAD является прямоугольная декартова система координат, которая называется мировой системой координат (МСК). Она используется по умолчанию при создании нового чертежа. Направление осей демонстрируется с
1.3. Системы счисления
1.3. Системы счисления Система счисления – это способ записи чисел с помощью заданного набора специальных знаков (цифр).Существуют системы позиционные и непозиционные.В непозиционных системах счисления вес цифры не зависит от позиции, которую она занимает в числе. Так,
Глава 2 Кодирование информации с помощью систем счисления
Глава 2 Кодирование информации с помощью систем счисления 2.1. Системы счисления Для записи информации о количестве объектов материального мира используются числа, которые разделяются по определенным признакам. На рис. 2.1 представлена классификация чисел по групповому
2.1. Системы счисления
2.1. Системы счисления Для записи информации о количестве объектов материального мира используются числа, которые разделяются по определенным признакам. На рис. 2.1 представлена классификация чисел по групповому признаку, когда в каждую группу входят числа, обладающие
2.2. Арифметические операции над числами, представленными в различных системах счисления
2.2. Арифметические операции над числами, представленными в различных системах счисления Арифметические операции во всех позиционных системах счисления выполняются по одним и тем же правилам. Для проведения арифметических операций над числами, представленными в
Различные реализации
Различные реализации Чтобы лучше понять всю важность описаний абстрактных типов данных, исследуем глубже потенциальные последствия использования физической реализации в качестве основы описания объектов.Удобным и хорошо изученным примером является описание
СИСТЕМЫ СЧИСЛЕНИЯ
СИСТЕМЫ СЧИСЛЕНИЯ Человек, как известно, может распознавать тысячи (если не миллионы) видов всевозможных сигналов. Когда мы читаем книгу, минимальным информационным элементом для нас становится буква, цифра или знак препинания. Итого – несколько десятков различных
Алгоритмы перевода чисел в различные системы счисления и их реализация на PHP
В рамках курса «Введение в системный анализ» было получено задание на перевод своей фамилии в различные системы счисления (2, 3, 8, 9, 10, 256, факториальную и фибоначчиевую). Вобщем-то ничего особо сложно, если бы не 24-х разрядное число, которое давала моя фамилия и отказывались считать Excel и ручные калькуляторы (да, стандартный calc.exe считает, но это то еще занудство). Поэтому я, ранее пользовавшийся только VBA и UOpilot’ом, и не найдя в сети единого решения данной задачи и реализации какой-либо его части на PHP, решил познакомиться c PHP и Arbitrary Precision Mathematic. Следует отметить, что в эту сторону меня направил комментарий unnamed777 в этой статье, за что ему большое спасибо.
Подробнее под катом.
Текст задания:
«Пользуясь кодовой страницей 1251 (или 0866), запишите свою фамилию в виде числа в 256-чной (байтовой) системе счисления. Заменив каждую 256-чную цифру двумя 16-чными (»дампом»), переведите это число в шестнадцатеричную систему счисления. Затем (уже из шестнадцатеричной) переведите его в системы счисления с основаниями 8, 2, 3, 9, 10.
Наконец, переведите это число в факториальную и фибоначчиевскую системы счисления.
Все нужные определения Вы легко найдёте по ссылкам с www.mashavph.narod.ru/Cheb02/term.htm .».
Теория вопроса:
Поскольку целью данного раздела является прежде всего понимание принципов выполнения упражнения по системам счисления (далее СС) в курсе «Введение в системный анализ», здесь будут рассмотрены алгоритмы преобразования лишь между интересующими нас в пределах данной работы СС, причем только в установленных заданием направлениях.
Итак:
Ряд Фибоначчи — это числовой ряд, где каждый следующий элемент равен сумме двух предыдущих. Любое натуральное число можно представить в виде суммы нескольких членов последовательности Фибоначчи. Такое представление будет неоднозначным, но если наложить дополнительное условие, что в представлении нет двух соседних членов последовательности Фибоначчи, то представление становится единственным. Таким образом к фибоначчиевой СС от 10-й проще всего перейти последовательно вычитая из 10-го числа числа ряда Фибоначчи, начиная с заведомо большего чем 10-е число и записывая логическую характеристику результата этой операции в итоговый ряд. Если при вычитании из 10-го числа числа ряда Фибоначчи получается отрицательное значения — записываем «0» и продолжаем работать с этим же 10-м числом. Если положительное — записываем «1» и далее уже работаем с полученной разностью. Все нули до первой единицы слева можно отбросить. Пример: для числа 23910 и ряда 377 233 144 89 55 34 21 13 8 5 3 2 1 получим 100000001001ф. Пруфлинк.
Примечания:
— Все вышеизложенные операции справедливы для множества натуральных чисел.
— В пунктах 2, 3, 4 и 5 расчеты выполняются по правилам десятичной арифметики.
— Хотя можно встретить описания ряда Фибоначчи как 1, 1, 2, 3, 5, 8.. и 0, 1, 1, 2, 3, 5, 8.., для расчетов в качестве базиса фибоначчиевой СС, как правило, используется ряд 1, 2, 3, 5, 8., что подтверждается в том числе и материалами данных сайтов.
Далее была реализация задуманного на PHP:
12) <
echo «Не верю!»;
>elseif ($dlina > 0) <
echo «Фамилия: $Surname
«;
echo «Фамилия согласно кодировке Windows-1251:
«;
////////////////////////////////////3,8,9
function to($chis, $osn) <
global $st8,$st3,$st9;
$divres = array();
While ($chis > 0) <
$prevchis = $chis;
$chis = bcdiv ($chis, $osn);
$ost = bcmul ($chis, $osn);
$ost = bcsub ($prevchis, $ost);
array_unshift($divres,$ost);
>
while (list(,$val) = each($divres)) <
if ($osn == 3) <
$st3 .= $val;
>
elseif ($osn == 8) <
$st8 .= $val;
>
elseif ($osn == 9) <
$st9 .= $val;
>
>
>
//////////////////////////////////////10 в факториал
function ttfact($chis) <
global $stfact;
global $stf210;
$facdivres = array();
$osn = 2;
While ($chis > 0) <
$prevchis = $chis;
$chis = bcdiv ($chis, $osn);
$ost = bcmul ($chis, $osn);
$ost = bcsub ($prevchis, $ost);
//echo $ost;
//$facdivres .= $ost;
array_unshift($facdivres,$ost);
$osn++;
>
while (list(,$val) = each($facdivres)) <
$stfact .= «$val «;
$i—;
>
>
function lfact($num) < // вычисляем факториал переданного числа
for ( $i = $num — 1; $i > 0; $i—) <
$num = bcmul ($i,$num);
>
return $num;
>
///////////////////////256,16,10,2
$i=0;
$st10 = 0;
while ($i $val»;
$stfib .= «0»;
>elseif ((bccomp($st10, $val)) >= 0) <
echo «
$key <> $val«;
$stfib .= «1»;
$st10 = bcsub($st10, $val);
>
>
fg:<>
echo «
В СС на основе ряда Фибоначчи: «;
$stfib = ltrim ($stfib,’0′);
echo «$stfib»;
if ($st10 == 0) <
echo «
Фибоначчи сосчитано верно»;
>else <
echo «
Alarm $st10″;
>
>
?>
Как видно из кода, решением проблемы обработки длинных чисел здесь стало использование расширения PHP для длинной арифметики (функции bcadd, bccomp, bcdiv и др.). Поскольку для наглядности должен был выводиться весь используемый ряд Фибоначчи, а переводить требовалось всего 1 слово, вводимая строка была ограничена 12-ю символами, хотя данный способ позволяет обрабатывать и более длинные строки.
Передавалось слово на исполнение следующим способом: