|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.01.2023, 15:35 | #1 |
Пользователь
Регистрация: 14.01.2023
Сообщений: 38
|
Как такой программой вывести число типа байт?
Код:
|
28.01.2023, 15:47 | #2 |
Пользователь
Регистрация: 14.01.2023
Сообщений: 38
|
Дело вот в чем.Это пример из методички.Я хотел его изменить ,чтобы он работал для числа типа db.Но он сразу у меня перестает работать.Это я для себя.Хотел научится и потренироватся преобразовавать строку в число и обратно.Искал в Интернете ,но точно такого примера нигде нет,а мне нужен именно он,а не другие реализации .Пожалуйста,скиньте переделку этого кода под тип числа db.
|
28.01.2023, 18:54 | #3 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Тут написана какая-то муть. Во-первых, если у вас число размером в byte тогда оно содержит не более 3-х разрядов. Но вы просто переходите к символу строки с индексом 3 (4-му разряду), не учитывая, что числа от 0 до 99 короче, чем 3 знака. Во-вторых, зачем вы умножаете числа и множитель?
В целом для перевода чисел различных размеров из строки не нужно много функций. Достаточно одной универсальной и функции проверки диапазонов т.к. в любых диапазонах бинарные числа представляются одинаково. Код:
Код:
Теперь попробуем написать перевод чисел из строки, в которой записано число в 10-ой системе счисления Код:
У вас в алгоритме как раз пытаются вычислять это выражение, но зачем. Давайте его немного перепишем. С точки зрения записи выражение станет сложнее (куча вложенных скобок, с которыми легко запутаться). Но с точки зрения реализации в программе все станет легче (см. мой вариант) ((...(Ak * N + Ak-1)*N + ...)*N + A1)*N+A0 Во втором случае вам не надо вычислять постоянно N^x, что сразу упрощает реализацию. Последний раз редактировалось macomics; 28.01.2023 в 20:16. |
28.01.2023, 19:02 | #4 |
Пользователь
Регистрация: 14.01.2023
Сообщений: 38
|
Спасибо большое.
|
28.01.2023, 19:06 | #5 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Теперь обратное преобразование (из числа в строку). Здесь тоже не нужно много вариантов программ, но какие-то отдельные реализации можно сделать отдельно. Например для db т.к. для этого числа достаточно 2-х операций деления
Код:
Последний раз редактировалось macomics; 28.01.2023 в 19:29. |
28.01.2023, 19:17 | #6 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Но числа длиннее байта лучше переводить с использованием циклов
Код:
Последний раз редактировалось macomics; 28.01.2023 в 19:36. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[C++] Проблемы с программой. Дано целое число N (> 1). Вывести наименьшее целое K, при котором выполняется неравенство 3K > N, и само значение 3K | Орлов | Помощь студентам | 2 | 11.07.2017 09:29 |
Delphi. Цикл While. Вывести целые числа от А до В, А вывести 1 раз, число А+1 вывести 2 раза и т.д. | schibeki | Помощь студентам | 4 | 07.02.2014 09:17 |
как сделать из числа типа real число типа integer? | gylayko | Помощь студентам | 6 | 15.09.2012 11:41 |
Написать программу, исх. данные типа байт | Garik2277 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 01.02.2011 00:25 |