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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2009, 00:24   #1
eXalleR-
Новичок
Джуниор
 
Регистрация: 13.10.2009
Сообщений: 5
По умолчанию Програмка для отслеживания разных типов в памяни ПК. Трабл с типом BOOL

В таком варианте работает все гууд:

Код:
#include <stdio.h>

void main()
{
	signed char ch3;
	unsigned short i1;
	unsigned char _i1[2];
	double d3;
	unsigned char _d3[10];

	int i;

	ch3 = 'd';
	i1 = 2500;
	d3 = -200.20e10;
// Перше число:
	printf("Normal: ch3 = %c (signed char);\n", ch3);
	printf("BnK: ch3 = %lx;\n\n", ch3);
// Друге число:
	printf("Normal: i1 = %d (unsigned short);\n", i1);
	printf("BnK: i1 = ");
	for(i=0; i<2; i++)
	{
		_i1[i] = *((char*)&i1 + i);
		printf("%02lx", _i1[i]);
	}
	printf(";\n\n");
// Третє число:
	printf("Normal: d3 = %Le (long double);\n", d3);
	printf("16: d3 = %Lx;\n", d3);
	printf("BnK: d3 = ");
	for(i=0; i<8; i++)
	{
		_d3[i] = *((char*)&d3 + i);
		printf("%02Lx", _d3[i]);
	}
	printf(";\n\n\n");
}
Только ко всему еще надо отследить тип BOOL:

Код:
#include <stdio.h>

void main()
{
	bool a;
	signed char ch3;
	unsigned short i1;
	unsigned char _i1[2];
	double d3;
	unsigned char _d3[10];

	int i;
	a = 1;
	ch3 = 'd';
	i1 = 2500;
	d3 = -200.20e10;
// Перше число:
	printf("Normal: ch3 = %c (signed char);\n", ch3);
	printf("BnK: ch3 = %lx;\n\n", ch3);
// Друге число:
	printf("Normal: i1 = %d (unsigned short);\n", i1);
	printf("BnK: i1 = ");
	for(i=0; i<2; i++)
	{
		_i1[i] = *((char*)&i1 + i);
		printf("%02lx", _i1[i]);
	}
	printf(";\n\n");
// Третє число:
	printf("Normal: d3 = %Le (long double);\n", d3);
	printf("16: d3 = %Lx;\n", d3);
	printf("BnK: d3 = ");
	for(i=0; i<8; i++)
	{
		_d3[i] = *((char*)&d3 + i);
		printf("%02Lx", _d3[i]);
	}
	printf(";\n\n\n");
}

Последний раз редактировалось Sazary; 13.10.2009 в 20:38.
eXalleR- вне форума Ответить с цитированием
Старый 13.10.2009, 00:25   #2
eXalleR-
Новичок
Джуниор
 
Регистрация: 13.10.2009
Сообщений: 5
По умолчанию

Компилятор мне выдает вот такие ошибки:

Цитата:
------ Построение начато: проект: lab-1, Конфигурация: Debug Win32 ------
Компиляция...
main.c
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(5) : error C2065: bool: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(5) : error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "a"
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(5) : error C2065: a: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(6) : error C2143: синтаксическая ошибка: отсутствие ";" перед "тип"
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(7) : error C2143: синтаксическая ошибка: отсутствие ";" перед "тип"
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(8) : error C2143: синтаксическая ошибка: отсутствие ";" перед "тип"
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(9) : error C2143: синтаксическая ошибка: отсутствие ";" перед "тип"
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(10) : error C2143: синтаксическая ошибка: отсутствие ";" перед "тип"
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(12) : error C2143: синтаксическая ошибка: отсутствие ";" перед "тип"
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(13) : error C2065: a: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(14) : error C2065: ch3: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(15) : error C2065: i1: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(16) : error C2065: d3: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(16) : warning C4244: =: преобразование 'double' в 'int', возможна потеря данных
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(18) : error C2065: ch3: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(19) : error C2065: ch3: необъявленный идентификатор
eXalleR- вне форума Ответить с цитированием
Старый 13.10.2009, 00:26   #3
eXalleR-
Новичок
Джуниор
 
Регистрация: 13.10.2009
Сообщений: 5
По умолчанию

Цитата:
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(21) : error C2065: i1: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(23) : error C2065: i: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(23) : error C2065: i: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(23) : error C2065: i: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(25) : error C2065: _i1: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(25) : error C2065: i: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(25) : error C2109: для индекса требуется массив или указатель
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(25) : error C2065: i1: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(25) : error C2065: i: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(26) : error C2065: _i1: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(26) : error C2065: i: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(26) : error C2109: для индекса требуется массив или указатель
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(30) : error C2065: d3: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(31) : error C2065: d3: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(33) : error C2065: i: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(33) : error C2065: i: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(33) : error C2065: i: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(35) : error C2065: _d3: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(35) : error C2065: i: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(35) : error C2109: для индекса требуется массив или указатель
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(35) : error C2065: d3: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(35) : error C2065: i: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(36) : error C2065: _d3: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(36) : error C2065: i: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2008\projects\lab-1\lab-1\main.c(36) : error C2109: для индекса требуется массив или указатель
Журнал построения был сохранен в "file://c:\Documents and Settings\Admin\Мои документы\Visual Studio 2008\Projects\lab-1\lab-1\Debug\BuildLog.htm"
lab-1 - ошибок 40, предупреждений 1
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

Простите, только зарегистрировался на этом форуме и еще не разбираюсь в подсветке синтаксиса..

Еще один вопрос... Почему тип long double определяется в точности как double, и занимает 8 байт а не законных 10?
eXalleR- вне форума Ответить с цитированием
Старый 13.10.2009, 00:29   #4
eXalleR-
Новичок
Джуниор
 
Регистрация: 13.10.2009
Сообщений: 5
По умолчанию

Сама программа фунциклирует в точности как мне надо... Вопросы какаются только этих двух мелочей...
eXalleR- вне форума Ответить с цитированием
Старый 13.10.2009, 00:38   #5
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

bool ввели только в C++, в C вместо него используют int
Цитата:
Сообщение от eXalleR-
Еще один вопрос... Почему тип long double определяется в точности как double, и занимает 8 байт а не законных 10?
Потому что так захотели разработчики VS2008 )
netrino вне форума Ответить с цитированием
Старый 13.10.2009, 01:01   #6
eXalleR-
Новичок
Джуниор
 
Регистрация: 13.10.2009
Сообщений: 5
По умолчанию

Еще возник вопрос..
Как вывести переменную на экран в C++ в 16-й системе?
Цитата:
cout.setf(ios::hex);
...такая штука работать не хочет (( Мб надо подключить дополнительную библиотеку?

Цитата:
signed char ch3;
ch3 = 'd';
printf("Normal: ch3 = %c (signed char);\n", ch3);
printf("BnK: ch3 = %lx;\n\n", ch3);
именно жирную строчку незнаю как перевести в С++, а точнее реализовать через потоковый вывод cout

Последний раз редактировалось eXalleR-; 13.10.2009 в 01:04.
eXalleR- вне форума Ответить с цитированием
Старый 13.10.2009, 15:55   #7
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Код:
int i = 0x23;
std::cout << std::hex << i;
http://cplusplus.com/reference/iostr...ipulators/hex/
http://cplusplus.com/reference/iostr...perator%3C%3C/
netrino вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему не работает исходник для отслеживания трафика Михаил Юрьевич Работа с сетью в Delphi 3 20.03.2009 01:09
Работа с базами разных типов (Paradox & dBase) Nidom БД в Delphi 12 18.02.2009 10:30
как связать поля разных типов doncova1 Microsoft Office Access 5 11.03.2008 00:15
Перевод переменных разных типов LeoN Общие вопросы Delphi 3 23.03.2007 00:15