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

Формирование двоичного кода для целой и дробной части + вывод в файл - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Приложение падает при удалении синглтона http://www.cyberforum.ru/cpp-beginners/thread1164257.html
Всем привет. Понадобилось мне использовать паттерн Singleton, реализовал я его так. UIManager* UIManager::GetInstance(){ if(!m_Instance){ m_Instance = new UIManager(); } return m_Instance; } Также добавил в деструкторе удаление указателя
C++ Оптимальная IDE для отладки native C++ приложений Посоветуйте, пожалуйста, оптимальную IDE для отладки native C++ приложений. Желательно кроссплатформенную. http://www.cyberforum.ru/cpp-beginners/thread1164256.html
Преобразование в матрице для игры C++
void GameField::PerformMove(int direction) { glutSetWindowTitle("perforn move inited"); switch(direction) { glutSetWindowTitle("switch inited"); case 1://if direction is up { glutSetWindowTitle("case1 inited"); for(int i=0;i<4;i++)//for each row
Вычислить приближенную сумму ряда при фиксированном значении x двумя способами C++
Для функционального ряда {a}_{1}{x}^{}+{a}_{2}{x}^{2}+...+{a}_{n}{x}^{n}+...=\sum_{n=1}^{\propto }{a}_{n}{x}^{n} где {a}_{n}={(-1)}^{n}\frac{n-1}{{3}^{n}*n!} вычислить приближенную сумму при фиксированном значении x двумя способами: сумму первых n членов ряда и сумму с точностью до eps(эпсилон) в двух разных функциях: double Sum1(double x, int n); double Sum2(double x, double eps); ...
C++ В списке Р заменить первое вхождение списка Р1 (если такое есть) на список Р2 http://www.cyberforum.ru/cpp-beginners/thread1164205.html
Написать программу с функциями, которая: а)в списке Р заменяет первое вхождение списка Р1( если такое есть) на список Р2; б)строит список Р1 - копию списка Р; в)добавляет в конец списка Р инвертированный список Р.
C++ Реализовать модель ассоциативного кеша Передо мной стоит задача, реализовать модель ассоциативного кеша, я решил использовать очередь с приоритетами, в ней будут храниться пары ключ-значение, ключом будет время, когда мы обращались к элементу, а значением сам элемент лежащий в кеше. В приницпе сложности в реализации нет, но зачем писать свою реализацию, если есть STL. Но возникли некторые сложности, я никак не могу найти метод поиска... подробнее

Показать сообщение отдельно
bacujiuca1
0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 17

Формирование двоичного кода для целой и дробной части + вывод в файл - C++

02.05.2014, 18:48. Просмотров 307. Ответов 5
Метки (Все метки)

Упростила программу, но суть ясна.
Выводит число, потом его целую и дробную часть, после чего переводит обе части в двоичную систему счисления. Целую часть конвертирует правильно, а с дробной проблемы.
Кто-нибудь может помочь разобраться, почему двоичный код для дробной части неверный?


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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <iostream>
#include <fstream.h>
#include <string>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
#include <iomanip>
#include <locale.h>
#include <windows.h>
using namespace std;
 
void Binary_integral(int j, char *Path){
FILE *f;
f=fopen(Path, "a");
int i;
for (i= 4-1; i >= 0; i--) {
if ((1 << i) & j){ cout << "1"; fputc('1', f);}
else{ cout << "0"; fputc('0', f);}}
fputc(' ', f);
cout << " ";
fclose(f);}
 
void Binary_fraction(int k, char *Path){
FILE *f;
f=fopen(Path, "a");
int i;
for (i = 10; i >= 0; i--) {
if ((1 << i) & k){ cout << "1"; fputc('1', f);}
else{ cout << "0"; fputc('0', f);}}
fputc('\n', f);
fclose(f);
return;}
 
 
int main(){
int n, bin;
double x, intpart, fractpart;
cout.setf(ios::fixed);
 
cout << "\n Please enter a file name: ";
char filename[15];
cin >> filename;
strcat(filename, ".txt");
ofstream outfile(filename, ios::app);
if(!outfile){ cout << " Can not open file: "<< filename<< "\n"; system("pause >> void"); exit(1);}
 
for (n= 1; n<= 10; n++){
    
x= (1.234*n);
cout.precision(3);
cout<< "\n"<< n<<") "<< x<< "   ";
cout.precision(0);
fractpart= modf(x, &intpart);
cout <<" intpart: "<< intpart <<"   ";
 
int y= (int)x;
fractpart=(x-y)*pow(10.0,3);
cout << "fractpart: "<< fractpart <<"   ";
 
int integral= (int)intpart;
Binary_integral(integral, filename);
 
int fraction= (int)fractpart;
Binary_fraction(fraction, filename);}
 
system("pause >> void");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru