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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.64
Акелла
Сонный металюга
45 / 45 / 6
Регистрация: 10.05.2009
Сообщений: 295
#1

типы данных - C++

09.06.2009, 12:36. Просмотров 2833. Ответов 45
Метки нет (Все метки)

на Си реализовать: (не С++)
построить функцию, возвращающую все байты заданного вещественного х в целом виде.
т.е. нам например вводят 10 как float, а нам нужно вернуть его как int, елси наоборот -это просто.... а вот так...
кто подскажет?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2009, 12:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос типы данных (C++):

Типы данных: есть ли универсальный тип, который может заменить все типы данных в Си? - C++
Добрый вечер! Был бы очень признателен, если бы Вы помогли бы мне понять нижеследующие вопросы: 1. Можете ли на понятным для...

Типы данных - C++
Какого типа мне нужна переменная, чтобы принимала во такое число: 100000000000000 (15 цифр) ???

Типы данных C++ - C++
Подскажите какие вещественные и целые типы самые большие и маленькие

Типы данных - C++
Мне задали в университете лабораторную работу. Написать программу вычисления среднего массивов типа int,float и complex. Функции,...

Типы данных - C++
Помогите пожалуйста решить проблему с типами данных. C++ только начинаю учить, поэтому не знаю, можно ли так сделать или нет. Нужно...

типы данных - C++
какой диапазон данных у main, getch? и какой тип данных у getch?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Evg
Эксперт CАвтор FAQ
17803 / 6009 / 387
Регистрация: 30.03.2009
Сообщений: 16,517
Записей в блоге: 26
09.06.2009, 14:33 #16
Цитата Сообщение от Haster Посмотреть сообщение
А разве не будет косяков из-за такой записи?
Если писать на все случаи жизни - то вообще неизвестно, что должно быть, ибо язык Си тебе не даёт вообще никакой гарантии, что у тебя float 4 байта и что какойто целый тип занимает 4 байта.

Я так понимаю, что у автора всё-таки компилятор под винду под режим 32 и писал в этом предположении. Но на всякий случай в своём последнем посте воткнул печать размеров типов
1
Акелла
Сонный металюга
45 / 45 / 6
Регистрация: 10.05.2009
Сообщений: 295
09.06.2009, 14:44  [ТС] #17
тем не менее... ребят, вы мне объясните принцип как это делаеться -я сам лучше напишу.. хоть воткну... а то я что то слабо улавливаю когда так
0
Evg
Эксперт CАвтор FAQ
17803 / 6009 / 387
Регистрация: 30.03.2009
Сообщений: 16,517
Записей в блоге: 26
09.06.2009, 14:50 #18
Принцип я тебе написал. Почему оно у тебя не работает - вопрос. Я тебе в 14-м посте написал, какой код адо воткнуть и показать печати. Чтобы понять, в каком месте у тебя проблема.
0
Акелла
Сонный металюга
45 / 45 / 6
Регистрация: 10.05.2009
Сообщений: 295
09.06.2009, 17:09  [ТС] #19
не, ребят. я упорно не понимаю.. либо мы о разном говорим..
смотрите -вводиться например у нас 10.000 ну то бишь вещественное.. .а вернуть должно 10 то есть целое...
0
Evg
Эксперт CАвтор FAQ
17803 / 6009 / 387
Регистрация: 30.03.2009
Сообщений: 16,517
Записей в блоге: 26
09.06.2009, 17:11 #20
Цитата Сообщение от Акелла Посмотреть сообщение
не, ребят. я упорно не понимаю.. либо мы о разном говорим..
смотрите -вводиться например у нас 10.000 ну то бишь вещественное.. .а вернуть должно 10 то есть целое...
C
1
2
3
4
int func (float f)
{
  return (int)f;
}
Но начальная постановка задачи всё-таки похожа на то, о чём мы тебе тут толковали
1
Акелла
Сонный металюга
45 / 45 / 6
Регистрация: 10.05.2009
Сообщений: 295
09.06.2009, 17:15  [ТС] #21
Evg, опа, а я почему то думал тчо так явно нельзя! спс огромное - вбил, прогнал пашет=)
ну, опыт сын ошибок трудных=)
0
Evg
Эксперт CАвтор FAQ
17803 / 6009 / 387
Регистрация: 30.03.2009
Сообщений: 16,517
Записей в блоге: 26
09.06.2009, 17:19 #22
Цитата Сообщение от Акелла Посмотреть сообщение
Evg, опа, а я почему то думал тчо так явно нельзя! спс огромное - вбил, прогнал пашет=)
ну, опыт сын ошибок трудных=)
Только всё равно мне кажется, что для задачи нужно не это, ибо смысла в такой задаче нет. Ты всё-таки уточни
0
Акелла
Сонный металюга
45 / 45 / 6
Регистрация: 10.05.2009
Сообщений: 295
09.06.2009, 17:21  [ТС] #23
Evg, завтра как раз узнаю.
знаешь - наш препод мог спокойнойд дать
у него в обычае дать на контроьной кусок кода и сказать -вот напишите что он выведет когда на входе то и то...
а на самом деле прога вообще не рабочая и он это знает
0
Evg
Эксперт CАвтор FAQ
17803 / 6009 / 387
Регистрация: 30.03.2009
Сообщений: 16,517
Записей в блоге: 26
09.06.2009, 17:34 #24
Ну а такая постановка задачи сводится по сути к тому, что напишите прогу, которая нифига не делает
0
BullDogoff
10 / 10 / 1
Регистрация: 16.05.2009
Сообщений: 30
09.06.2009, 17:35 #25
Весёлый у вас препод.. Вообще в следующий раз задание дословно приводи, и пример, если получится.. Хотя полезно получилось, так я бы объединения и не попробовал бы в работе
1
Акелла
Сонный металюга
45 / 45 / 6
Регистрация: 10.05.2009
Сообщений: 295
09.06.2009, 17:39  [ТС] #26
BullDogoff, а я теперь в принципе знаю что етсь что то такое=)
веселый это еще слабо сказано, но ладно не в этом суть=)
0
Акелла
Сонный металюга
45 / 45 / 6
Регистрация: 10.05.2009
Сообщений: 295
10.06.2009, 22:17  [ТС] #27
BullDogoff, Evg, преподу показал... вы правы были ребята, короче суть в следующем
например приходит число 123,45 - вещественное
нужно вернуть целое 12345, т.е. все биты
0
Evg
Эксперт CАвтор FAQ
17803 / 6009 / 387
Регистрация: 30.03.2009
Сообщений: 16,517
Записей в блоге: 26
10.06.2009, 22:31 #28
Уверент? Потому как очередной бред. Если введут 1.22222222222222222222222222222, то у тебя нет целого числа, чтобы это дело представить. Не говоря уж о том, что плавающие числа в общем случае не представляются без округления
0
Акелла
Сонный металюга
45 / 45 / 6
Регистрация: 10.05.2009
Сообщений: 295
10.06.2009, 22:34  [ТС] #29
Evg, нет, не очень уверен=) просто черезъ объединения было верно... но выводить оно должно нечто похожее на введеное.

ну вообще дословно формулировка:
построить функцию, возвращающую все байты заданного вещественного х в целом виде. может я уже не так все понимаю?=)
0
Evg
Эксперт CАвтор FAQ
17803 / 6009 / 387
Регистрация: 30.03.2009
Сообщений: 16,517
Записей в блоге: 26
10.06.2009, 22:46 #30
Вот при такой формулировке и нужно работать через union

#include <stdio.h>

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int
func (float fval)
{
  union
  {
    float f;
    int i;
  } u;
 
  u.f = fval;
  return u.i;
}
 
int
main (void)
{
  int i;
 
  i = func (1.2345);
  printf ("0x%08x\n", i);
 
  return 0;
}
Код
0x3f9e0419
При условии, что sizeof(int)==4 и sizeof(float)==4

Добавлено через 33 секунды
То 16-ричное число, которое ты видишь - вот так твоё плавающее число хранится в памяти
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2009, 22:46
Привет! Вот еще темы с ответами:

типы данных - C++
int x1, x2; float summa; x1 = 5; x2 = 6; summa = (x1 + x2)/2; cout &lt;&lt; summa &lt;&lt; endl; почему в результате 5, а не...

типы данных - C++
уважаемые программисты, как отвести типу char 2 байта? пишу шахматы, 6 фигур, хочу, чтобы каждый бит отводился для определенной фигуры, +...

типы данных - C++
Подскажите как средствами С++ получить доступ к отдельным байтам стандартных типов данных, только без использования асматических вставок.

Типы данных - C++
__int64 Z = pow(a,x); long double Y = 9/Z; cout&lt;&lt;Y //Y = 0 Как вывести подробней? Добавлено через 6 минут И при Y%Z не...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.06.2009, 22:46
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru