Цитата(Kmet @ 18:01:2007, 16:43 )

нет слов
Да возможно я малоинформирован по данной теме. Видимо в большинстве учебников данный вариант преобразования не описывается, т.к. думают, что такой элементарный пример не требует внимания ,в силу своей простоты для понимания и его смысл и так всем ясен(возможно я немного преувеличиваю!).
Но согласитесь если вглядется в детали данного выражения можно сделать вывод, что дополнение (float) является лишьним. Если я пытаюсь переменной скажем Int присвоить переменную char, то ежу понятно что это можно сделать только приведя один тип к другому, либо никак. Зачем же дополнительно приписывать к переменной аргумент float (я даже не знаю как правильно это называется аргумент, атрибут, оператор, тип или еще что). Понятное дело вы скажете что просто таковы правила языка и мы должны их выполнять, а если не нравится, то разработай свой язык и делай там что хочешь. Но факт наличия лишней информации в инструкции сразу ввел меня в заблуждение, почему я и решил разобратся в деталях. (На самом деле я до сих пор сомневаюсь, что эта информация лишьняя, просто ее смысл до сих пор не раскрыт)
Если вам все досконально понятно, как в таком случае вы объясните следующий пример:
int a;
char b;
b='y';
a=(float)b;
Что в этом коде происходит? (Компилятор все инструкции пропускает не ругаясь)
У меня три варианта:
1) Переменной a типа int присваивается значение переменной b типа char(с приведением ее к типу int) тогда возникает вопрос при чем здесь (float)
2) Переменной a типа int присваивается значение переменной b типа char(с приведением ее к типу float)
в этом случае вопрос? Как переменной типа int можно присвоить значение переменной типа float? Абсурд!
3) Переменной a типа int присваивается значение переменной b типа float(c приведением ее к типу int) Но компилятору то при этом хорошо известно, что переменная b определена ранее с типом char.
Если можно поясните что происходит с переменными на битовом(байтовом уровне).