Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2009, 13:56   #1
Игорь777
Пользователь
 
Регистрация: 04.12.2008
Сообщений: 33
Восклицание Помогите исправить ошибку в задаче!

Буду очень благодарен за помощь!!! Написал код, вроде все правильно, но работает неверно.
Итак, изначальная задача:
Отобразить на экране битовый образ каждого байта, введенного с клавиатуры значения типа double.

Моя ошибка: на любое введенное мной число компьютер выдает битовый образ каждого байта, равный 11001100. А это никак не верно((

Код:
#include "stdafx.h"
#include <iostream>
using namespace std;

class Tbit {
public:
	double znach;
	char m[8];
	Tbit(double);
	Tbit(const Tbit&);
	void bitshow();
};

Tbit::Tbit(double nznach): znach(nznach) {}
Tbit::Tbit(const Tbit&R){znach=R.znach;}

void Tbit::bitshow(){
	cout<<"Number of byte:     "<<"Bits:"<<endl; 
	for(int j = 7; j >= 0; j--) {
		cout<<j<<"                   ";
		for(int i = 128; i; i >>= 1)
			if (i & m[ j ] ) cout<<"1";
			else cout<<"0";
		cout<<"\n";
	}
}


int _tmain(int argc, _TCHAR* argv[]){
	double znach;	
	cout<<"Input double: "<<endl;
	cin>>znach;
	Tbit obj(znach);
	obj.bitshow();
	cin.get();
	cin.get();
	return 0;
}
где ошибка? заранее очень благодарен!
Игорь777 вне форума Ответить с цитированием
Старый 26.04.2009, 15:25   #2
Игорь777
Пользователь
 
Регистрация: 04.12.2008
Сообщений: 33
По умолчанию

Народ, помогите срочно плиз!! Очень нужно(
Игорь777 вне форума Ответить с цитированием
Старый 26.04.2009, 17:31   #3
Игорь777
Пользователь
 
Регистрация: 04.12.2008
Сообщений: 33
По умолчанию

нарооод!! никто не знает? =((
Игорь777 вне форума Ответить с цитированием
Старый 26.04.2009, 17:34   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Вот, вроде, все верно.
Код:
#include <iostream>
using namespace std;

class Tbit {
public:
union numb
 {
  double znach;
	 char m[8];
 } k;
	Tbit(double);
	Tbit(const Tbit&);
	void bitshow();
	void showm();
};

Tbit::Tbit(double nznach) { k.znach=nznach; }
Tbit::Tbit(const Tbit&R) { k.znach=R.k.znach;}

void Tbit::bitshow(){
	cout<<"Number of byte:     "<<"Bits:"<<endl;
	for(int j = 7; j >= 0; j--) {
		cout<<j<<"                   ";
		for(int i = 128; i; i >>= 1)
			if (i & k.m[ j ] ) cout<<"1";
			else cout<<"0";
		cout<<"\n";
	}
}

void Tbit::showm(){
 for(int i=7;i>=0;i--)
  cout<<(int)k.m[i]<<" ";
 cout<<endl;

}

int main(){
	double znach;
	cout<<"Input double: "<<endl;
	cin>>znach;
	Tbit obj(znach);
	obj.bitshow();
 //obj.showm();
	cin.get();
	cin.get();
	return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 26.04.2009 в 17:50.
Sazary вне форума Ответить с цитированием
Старый 26.04.2009, 18:31   #5
Игорь777
Пользователь
 
Регистрация: 04.12.2008
Сообщений: 33
По умолчанию

Большое спасибо, Sazary!!
Игорь777 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите исправить ошибку в задаче Vladislav_87 Паскаль, Turbo Pascal, PascalABC.NET 4 04.07.2008 12:27
Помогите дописать и исправить ошибку в задаче Vladislav_87 Паскаль, Turbo Pascal, PascalABC.NET 5 30.05.2008 00:14
Пожалуйста срочно помочь мне исправить ошибку в задаче Vladislav_87 Паскаль, Turbo Pascal, PascalABC.NET 8 20.05.2008 20:46
Помогите исправить ошибку в задаче VANOLORD Паскаль, Turbo Pascal, PascalABC.NET 9 19.05.2008 22:16