Форум программистов, компьютерный форум CyberForum.ru

Функция, перемножающая два числа с учётом переполнения - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Разработать программу, которая для введенного символа арифметической операции ('+','-','/','*','%') печатает ее название http://www.cyberforum.ru/cpp-beginners/thread652717.html
Разработать программу, которая для введенного символа арифметической операции ('+','-','/','*','%') печатает ее название.
C++ Дублирование вхождения каждого элемента списка One и формирование из этих значений списка Double (пояснить условие) Здравствуйте. Вот собственно само задание: В составе программы описать функцию, которая дублирует вхождение каждого элемента списка One и формирует из этих значений список Double. Кому не сложно объясните пожалуйста вот этот момент "дублирует вхождение каждого элемента списка One" куда конкретно вхождение? http://www.cyberforum.ru/cpp-beginners/thread652713.html
C++ Сортировка методом центрированной вставки
Доброго времени суток. Может у кого-нибудь есть пример на С++ этой сортировки? Буду рад поглядеть) В интернете не нашел примеров)
C++ std::cin, eof не всегда принимается как признак конца файла
std::string text; char ch = 0; while(!std::cin.get(ch).eof()){ text.append(1, ch); } Ввожу в консоль в Windows: "^Z" (ctrl-z) ok, из цикла выходит "g\n^Z" (\n - новая строка) ok, из цикла выходит. "g^Z" из цикла не выходит.
C++ [c++] формулы лаба http://www.cyberforum.ru/cpp-beginners/thread652671.html
В общем есть такая проблема я ламер в с++ полный так как только начали его изучать в универе ,а лабу сдавать завтра:( если можете подсказать что-то или сделать, прошу помогите просто реально ничего не понимаю. Задание к №1: Определить тип данных. С помощью операторов ввода-вывода составить программу вычисления функции a, заданной в таблице Задание к №2:Cоставить алгоритм и программу с...
C++ Не работает считывание из файла char* Text::GetDataFromFile(char* Location) { char Data; DWORD Size; DWORD R; HANDLE File = CreateFile((wchar_t*)Location, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL); if(File == INVALID_HANDLE_VALUE) return '\0'; GetFileSize(File,&Size); if(!ReadFile(File,Data, Size, &R, NULL)) return '\0'; return Data; подробнее

Показать сообщение отдельно
edward_jonson
 Аватар для edward_jonson
157 / 157 / 25
Регистрация: 23.02.2011
Сообщений: 388
16.09.2012, 14:56     Функция, перемножающая два числа с учётом переполнения
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <cmath>
 
using namespace std;
 
typedef unsigned short us;
 
us Create(us a, us b, us &c)
{
    if ( a * b >= pow(2, 16) )
    {
        us toRet = (a*b) / pow(2, 16);
        c = a*b - toRet * pow(2, 16);
        return toRet;
    }
    else
    {
        c = a * b;
        return 0;
    }
}
 
int main()
{
    us lowp = 0, highp = 0;
    us a = 1024, b = 1025;
    highp = Create(a, b, lowp);
    cout << highp << " * " << pow(2, 16) << " + " << lowp << " = " << (int)(highp * pow(2, 16) + lowp) << endl
         << a << " * " << b << " = " << (int)(a * b);
    return 0;
}
 
Текущее время: 19:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru