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

Максимальное число типа int

22.03.2013, 18:18. Показов 5915. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Я реализовал функцию перевода из двоичной системы счисления в десятичную, она работает хорошо, но когда я хочу ввести четырех байтный число, то выводит -1. Хочу советы как можно реализовать перевод с такими большими числами.
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
void binary_to_ten(int* binary_code,int size)
{
    cout<<endl;
    long long int sum = 0;
    for(int i = 0; i < size; ++i){
        sum += my::pow(binary_code[i]*2,size-i-1);
    }
    cout<<sum;
    system("pause>0");
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.03.2013, 18:18
Ответы с готовыми решениями:

Максимальное значение переменной типа int
Если тип long в 2 раза больше чем int. Сколько максимум в int? В чём они измеряются в памяти? в...

Напишите перегруженную функцию power (), которая принимает два целочисленных параметра типа int и возвращает целочисленное значение типа int
Операции над целыми числами осуществляются быстрее, чем над числами с плавающей точкой. Напишите...

Передать массив элементов(типа int) объекта, в функцию из массивов(типа int)
Представьте такую ситуацию. Есть у вас массив чисел: Mass И вы хотите передать его в функцию. Я...

Ввод числа, большего, чем максимальное число для int
Столкнулся с проблемой, что если в программу, не важно какую, ввести число с помощью cin, большее,...

7
CEO SOVAZ Corp.
386 / 232 / 51
Регистрация: 17.12.2011
Сообщений: 822
Записей в блоге: 1
22.03.2013, 18:23 2
Используй тип unsigned long long (он вроде больше)
1
Эксперт С++
177 / 163 / 21
Регистрация: 12.02.2013
Сообщений: 410
22.03.2013, 19:59 3
Цитата Сообщение от sovaz1997 Посмотреть сообщение
Используй тип unsigned long long (он вроде больше)
Плохая идея, старина.
не стоит пользоваться unsigned, уповая на лишний бит в представлении значения числа
Судя по вопросу, перед автором не стоит задачи поддержки определенного диапазона чисел. Плюс, неужто существует двоичное представление лишь для положительных чисел? Предложение по использованию unsigned еще и потому несостоятельно, что такие ограничение накладывает.

Добавлено через 8 минут
Если не хватает 64-битного знакового числа для работы программы, ну, тут уже нужно задуматься не над добавлением дополнительного квалификатора, который увеличит верхнюю границу ОДЗ и срежет нижнюю), но задуматься над сменой используемого типа данных вообще.

Вот тут можешь программно получать граничные значения типов на твоей реализации:

C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include <limits>
using namespace std;
 
int main()
{   
    cout << std::numeric_limits<long long>::max();
    cout << std::numeric_limits<long long>::min();
}
1
5232 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
22.03.2013, 21:32 4
Цитата Сообщение от Why so seriouS Посмотреть сообщение
но когда я хочу ввести четырех байтный число, то выводит -1
Если массив, представляющий биты, заполнен единицами, то ответ правильный. Зачем что-то менять?
1
45 / 45 / 12
Регистрация: 12.03.2013
Сообщений: 167
22.03.2013, 22:02  [ТС] 5
Цитата Сообщение от Kastaneda Посмотреть сообщение
Если массив, представляющий биты, заполнен единицами, то ответ правильный. Зачем что-то менять?
Мне интересно почему он правильный? По идее программа поднимает все числа в степень, и там никак не получится -1. И я знаю о том, что в двобайтовому виде например 11111111 == 255 == -1. Но в данном случае мне кажется что это не правильно.

Добавлено через 2 минуты
Цитата Сообщение от ITcrusader Посмотреть сообщение
Если не хватает 64-битного знакового числа для работы программы, ну, тут уже нужно задуматься не над добавлением дополнительного квалификатора, который увеличит верхнюю границу ОДЗ и срежет нижнюю), но задуматься над сменой используемого типа данных вообще.
Я думал над этим, хотел все хранить в чаровському массиве, но передо мной встала та же проблема, потому что эти числа надо как-то дадаты ..
0
5232 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
22.03.2013, 22:03 6
Цитата Сообщение от Why so seriouS Посмотреть сообщение
И я знаю о том, что в двобайтовому виде например 11111111 == 255 == -1.
Ну и 111111...11111 (32 бита) тоже равно -1.

Цитата Сообщение от Why so seriouS Посмотреть сообщение
Но в данном случае мне кажется что это не правильно.
Почему неправильно?
1
45 / 45 / 12
Регистрация: 12.03.2013
Сообщений: 167
22.03.2013, 22:06  [ТС] 7
Цитата Сообщение от Kastaneda Посмотреть сообщение
Почему неправильно?
Но оно равно и другому, положительном числу! И я думаю, что программа должна вывести его, а не число со знаком -
0
5232 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
22.03.2013, 22:10 8
Цитата Сообщение от Why so seriouS Посмотреть сообщение
Но оно равно и другому, положительном числу!
Тут уже все зависит от того, как программа будет интерпритировать это число. А как она это будет делать - зависит от программиста. У программиста С++ есть средства типа signed/unsigned.

Цитата Сообщение от Why so seriouS Посмотреть сообщение
И я думаю, что программа должна вывести его, а не число со знаком -
Тогда нужно сделать так
C++
1
cout << (unsigned long) sum;
или изначально использовать беззнаковый тип.
1
22.03.2013, 22:10
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.03.2013, 22:10
Помогаю со студенческими работами здесь

Программа на С, которая вводит число типа int с клавиатуры, преобразует ее в строку (str), выводит на дисплей число и строку.
Задача направленная на усвоение следующих понятий: прототип функции; заголовок функции; тело...

Ошибка "Аргумент типа int несовместим с параметром типа int". Буду признателен за подсказку!
Прошу не судить строго, только начинаю программировать, нужна помощь. int Zapol_Funkcii(int...

Аргумент типа int не совместим с параметрами типа int*
помогите, ошибка в программе &quot;аргумент типа int не совместим с параметрами типа int*&quot; #include...

Аргумент типа int не совместим с параметрами типа int**
Помогите, решить проблему с указателями #include &lt;iostream&gt; #include &quot;pch.h&quot; #include...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Как настроить 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. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru