С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 22.06.2022
Сообщений: 20
1

Перевод из 10-тичной в 8-ричную СС

01.01.2023, 21:01. Показов 2501. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здрасьте всем! Прошу прощения за наивность вопроса: пытаюсь понять принцип перевода числа из 10- в 8-ричную систему. Всё просто, но перевожу 34510 и получаю 5318. А не 3318, как я считаю)

Вопрос: да вроде там 3 д.б. а не 5.

Перевожу 3318 и действительно 34510 не получаю.

Скажите, пожалуйста, я не знаю какого-то элементарного правила? Какого?

Спасибо!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.01.2023, 21:01
Ответы с готовыми решениями:

Перевод из 10-тичной в 16-ричную систему счисления
Как перевести из 10 в 16 систему, каким-нибудь простым способом?

Перевод числа из 10-тичной системы в 16-ричную
Здравствуйте! Решил написать программу, которая переводит числа из 10-тичной системы во все виды...

Как перевести число из 10-тичной системы счисления в 8-ричную и обратно.
Помогите кто-нибудь! Заранее спасибо!

Как посчитать дробную и целую часть числа переводя его из 10-тичной в 8-ричную систему?!
Прошу вашей помощи...

15
Злостный нарушитель
9654 / 5235 / 1196
Регистрация: 12.03.2015
Сообщений: 24,680
01.01.2023, 21:14 2
Цитата Сообщение от giedras Посмотреть сообщение
Скажите, пожалуйста, я не знаю какого-то элементарного правила? Какого?
Покаж кот.

Перевод из 10-тичной в 8-ричную СС
0
3719 / 2648 / 761
Регистрация: 29.06.2020
Сообщений: 9,800
01.01.2023, 21:41 3
Цитата Сообщение от giedras Посмотреть сообщение
как я считаю
Интересно, как вы считаете

Добавлено через 21 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <iomanip>
void show_oct(int n){
    char buf[64];
    buf[63] = 0;
    char* p = &buf[62];
    do{
        (*p--) = '0'+(n%8);
        n/=8;
    }while(n);
    std::cout << ++p;
}
int main(){
    std::cout << std::oct << 345 << std::endl;
    show_oct(345);
}
0
723 / 683 / 110
Регистрация: 29.05.2015
Сообщений: 4,111
01.01.2023, 21:49 4
Цитата Сообщение от giedras Посмотреть сообщение
Всё просто, но перевожу 34510 и получаю 5318. А не 3318, как я считаю
Неправильно вы считаете, 34510 и есть 5318. Даже чисто логически рассуждая, число в меньшей степени счисления всегда должно быть "больше". 34510 равно:

4239
5318
10027
13336
23405
111214
1102103
1010110012
Миниатюры
Перевод из 10-тичной в 8-ричную СС  
0
0 / 0 / 0
Регистрация: 22.06.2022
Сообщений: 20
01.01.2023, 21:54  [ТС] 5
Не-не, я считаю в смысле "рассчитываю"
я без претензий)
Миниатюры
Перевод из 10-тичной в 8-ричную СС  
0
0 / 0 / 0
Регистрация: 22.06.2022
Сообщений: 20
01.01.2023, 22:10  [ТС] 6
Я согласен, я неверно считаю! Но почему во втором действии остаток 3, а на 8 делит не 3, а 5?
Просто объясните, я понятливый)
Там же все остатки на 8 до 0 делятся
нет?

Добавлено через 11 минут
Инструкция: Как перевести

Для того, чтобы преобразовать число из десятичной системы счисления в восьмеричную, необходимо выполнить следующие действия.

Делим десятичное число на 8 и записываем остаток от деления.
Результат деления вновь делим на 8 и опять записываем остаток.
Повторяем операцию до тех пор пока результат деления не будет равен нулю.
Запишем полученные остатки в обратном порядке и получим искомое число.

Я всё так и делаю жешь, у меня 3318 получается
Вроде, нет ошибок же) а надо 5318
Молю о помощи!
0
723 / 683 / 110
Регистрация: 29.05.2015
Сообщений: 4,111
01.01.2023, 22:26 7
345/ 8 = 43 ост 1
43 / 8 = 5 ост 3
5 / 8 = 0 ост 5

Остатки берём в обратном порядке. Где здесь 331?
5 потому что частное 0, всё делимое уходит в остаток.
0
3719 / 2648 / 761
Регистрация: 29.06.2020
Сообщений: 9,800
01.01.2023, 22:28 8
Цитата Сообщение от giedras Посмотреть сообщение
Почему здесь 5 ?
5 - это частное от предыдущей операции деления - 43/8
1
723 / 683 / 110
Регистрация: 29.05.2015
Сообщений: 4,111
01.01.2023, 22:31 9
Лучший ответ Сообщение было отмечено giedras как решение

Решение

Цитата Сообщение от giedras Посмотреть сообщение
Но почему во втором действии остаток 3, а на 8 делит не 3, а 5?
А почему в первом действии остаток 1, а во втором на 8 делим не 1 а 43???
1
0 / 0 / 0
Регистрация: 22.06.2022
Сообщений: 20
01.01.2023, 22:45  [ТС] 10
Уф!
Семён Семёныч!
Простите, тупанул!
Спасибо и добрейшего вечера!
0
Вездепух
Эксперт CЭксперт С++
12802 / 6677 / 1797
Регистрация: 18.10.2014
Сообщений: 16,902
02.01.2023, 07:00 11
Первый способ перевода из 10сс в другие - последовательное деление с остатком, как это обычно делают программно.

Но люди, в уме или на бумажке, обычно так не переводят. Люди в реальной жизни обычно переводят при помощи более естественного "жадного" алгоритма от старших к младшим.

81 = 8, 82 = 64, 83 = 512, 84 = 4096...

Это значит, что 345 = 64 * 5 + 25. Первый разряд 5, остаток 25.
25 = 8 * 3 + 1. Второй разряд 3, остаток 1.
1 = 1. Третий разряд 1. Готово.

Получаем 5318.

Это я к тому говорю, что альтернативным алгоритмом вы всегда можете себя проверить.
1
0 / 0 / 0
Регистрация: 22.06.2022
Сообщений: 20
02.01.2023, 12:33  [ТС] 12
2 the Calligrapher

Спасибо, добрый человек!
Я учту!
0
0 / 0 / 0
Регистрация: 22.06.2022
Сообщений: 20
03.01.2023, 19:39  [ТС] 13
Добрый вечер, the Calligrapher и все!

Вся эта история с мучительными расчётами при переводе из одной СС в другую весьма стремны.

Вы вчера показали, что в случае перевода 10СС в 8СС, подобной писаниной не запариваются, а используют иные алгоритмы, вроде "жадного" выше.

Скажите, пожалуйста, как проще считать для конвертации (есть ли алгоритмы лучше) расчёта програмного:

1) 16СС в 10СС;
2) 16СС в 2СС;
3) 10СС в 16СС;
4) 10СС в 2СС;
5) 8СС в 10СС;
6) 8СС в 2СС;
7) 2СС в 16СС;
8) 2СС в 10СС;
9) 2СС в 8СС.

Прошу прощения за много букв и наивность вопроса. Я явно не волшебник. я учусь
0
Вездепух
Эксперт CЭксперт С++
12802 / 6677 / 1797
Регистрация: 18.10.2014
Сообщений: 16,902
03.01.2023, 20:11 14
Цитата Сообщение от giedras Посмотреть сообщение
Скажите, пожалуйста, как проще считать для конвертации (есть ли алгоритмы лучше) расчёта програмного:
Для "расчёта программного" при переводе из любой систмы счисления в любую, лучше просто пользоваться готовыми средствами перевода между любой системой счисления и внутренним представлением.

Цитата Сообщение от giedras Посмотреть сообщение
1) 16СС в 10СС;
При помощи функции std::from_chars переводим из 16СС в тип unsigned long, а затем при помощи std::to_chars переводим из unsigned long в 10СС.

И так со всеми.
1
0 / 0 / 0
Регистрация: 22.06.2022
Сообщений: 20
03.01.2023, 22:19  [ТС] 15
Просьба кто-нибудь из знатоков: прокомментируйте, пожалуйста!

Не переводит число 789 из 8СС - говорит, нет в этой системе такой (см. приложение)
А как мне знать, в какой СС каких символов нет?
Миниатюры
Перевод из 10-тичной в 8-ричную СС  
0
3719 / 2648 / 761
Регистрация: 29.06.2020
Сообщений: 9,800
03.01.2023, 22:28 16
Цитата Сообщение от giedras Посмотреть сообщение
А как мне знать, в какой СС каких символов нет?
Нету всех кроме тех которые естьмогут быть!

Добавлено через 5 минут
Для представления чисел в СС2-10, используются цифры 0-9
Для СС 11-36 - используются цифры (0-9) и латинские буквы (a-z)
1
03.01.2023, 22:28
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.01.2023, 22:28
Помогаю со студенческими работами здесь

Перевод чисел из десятичной системы счисления в 2-ичную, 8-ричную, 16-ричную и обратно
Помогите составить проги.Очень нато!!!Желательно в процедурах или функциях.

Перевод в 16-тиричную, 8-ричную, и 2-ричную систему
Почему при запуске кода выдаёт ошибку? Код составлен верно для перевода в шестнадцатеричную,...

Перевод из двоичной в 8-ричную и 16-ричную системы!
Доброго времени суток! Ребят, как сделать так чтобы Х Y Z в конце моей программы переводились с...

Перевод из 10-тичной сс в нега-2-ичную
Требуется перевести из десятичной в нега-двоичную систему счисления. Один из тестов не проходит....

Перевод в p-ричную CC
Здравствуйте, помогите решить задание (очень срочно!). Пыталась сама, но не получилось. Заранее...

Перевод из 2-ой ссч и 16-ричную
Подскажите как можно проще записать перевод из двоичной системы счисления в 16-ричную. Проблема в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru