|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.11.2010, 14:32 | #1 |
любитель-далеко не
Участник клуба
Регистрация: 13.04.2010
Сообщений: 1,156
|
В чём разница в способах изменения типа данных?
Здравствуйте люди понимающие ))
Объясните пожалуйста - в чём разница ( принципиальная, ибо в первом случае компиль. ругается) между такими вот строчками - Код:
Код:
Код:
|
07.11.2010, 14:41 | #2 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Console.ReadLine что возвращает? подумайте хорошенько.
Подсказка: 1 - приведение типов, 2 - преобразование типов. |
08.11.2010, 09:44 | #3 | |
любитель-далеко не
Участник клуба
Регистрация: 13.04.2010
Сообщений: 1,156
|
Цитата:
отсюда да и в книге Шилдта как-то явно понятия путаются - Код:
Последний раз редактировалось vedro-compota; 08.11.2010 в 09:45. Причина: добавил |
|
08.11.2010, 09:58 | #4 | |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Цитата:
|
|
10.11.2010, 19:13 | #5 | |
любитель-далеко не
Участник клуба
Регистрация: 13.04.2010
Сообщений: 1,156
|
Цитата:
Код:
Код:
вообще не ни то ни другое это просто вызов метода класса - то есть он не видит разницы между преобразованием и приведением, как , впрочем, и Шилдт - книжку которого рекомендовали для изучения разработчики NETфреймок из клана маленьких и мягких) |
|
10.11.2010, 19:19 | #6 |
Форумчанин
Регистрация: 04.07.2007
Сообщений: 549
|
А что не понятного в строке:
Код:
Тут метод вообще возвращает результат double и так как опять же возможна потеря данных, программист сам выполняет приведение. Код:
Последний раз редактировалось Casper-SC; 10.11.2010 в 19:22. |
10.11.2010, 23:20 | #7 |
Форумчанин
Регистрация: 25.09.2009
Сообщений: 525
|
vedro-compota внутри этого конверта очень много всего для разбора исходных данных(парсинг), в итоге вообще уходит в unsafe методы
Код:
Последний раз редактировалось m0nax; 10.11.2010 в 23:22. |
12.11.2010, 15:59 | #8 |
любитель-далеко не
Участник клуба
Регистрация: 13.04.2010
Сообщений: 1,156
|
да так-то оно так (спасибо за примеры и пояснение особенностей!)только тезис Вована о различиях между приведением и преобразованием остаётся малопонятным)
|
12.11.2010, 16:14 | #9 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Приведение:
В памяти хранится int - 4 байта. Допустим это 0x00000034. 0x34 - char, или byte - 1 байт. 0x34 - это символ '4' соответствующий номеру в ASCII таблицы Т.е. как получить из 4 байт, 1й символ '4' ? int i = 0x00000034; char s4 = (char)i; // т.е. мы запрашиваем младший байт // s4 == '4'; Преобразование: Есть строка char *s = "4"; По сути s это указатель на место в памяти где располагается 1 байт (ну не будем принимать во внимание Unicode...). Этот один байт есть никак иное что 0x34 (см. ранее) Но если мы сделаем приведение типов то получим int i4 = (int)(byte)*s; // разыменовываем указатель и получаем по адресу один char/byte, после чего приводим тип в int/4 байта. В итоге i4 == 0x34; Что не правда, нам ведь надо 0x4; Тут мы обязаны использовать преобразование, в самом простом случае, это i = ASCII Number - Symbol; т.е. i4 = (int)(byte)*s - 0x30 = 0x34 -0x30 = 0x4; Думаю теперь ясна разница. |
21.11.2010, 20:49 | #10 | |
любитель-далеко не
Участник клуба
Регистрация: 13.04.2010
Сообщений: 1,156
|
Цитата:
Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
В чём разница между unit, header file, cpp file? | TwiX | Общие вопросы C/C++ | 6 | 29.04.2012 19:49 |
В чём разница между запросами и программным обходом записей базы? | Arkuz | БД в Delphi | 6 | 20.08.2009 16:19 |
В чём разница между TCP и UDP? | TwiX | Работа с сетью в Delphi | 4 | 28.07.2009 23:54 |
в чём разница? | Dimarik | Общие вопросы C/C++ | 1 | 25.04.2009 21:27 |
Ну тогда скажите здесь в чём разница...? | Arkuz | Общие вопросы Delphi | 4 | 23.04.2008 21:58 |