49 / 31 / 2
Регистрация: 14.02.2013
Сообщений: 677
|
||||||
1 | ||||||
Преобразование типов в выражениях12.04.2013, 11:21. Показов 1413. Ответов 0
Метки нет Все метки)
(
Есть правило, например:
"Если один операнд имеет тип decimal, то и второй операнд продвигается к типу decimal (но если второй операнд имеет тип float или double, результат будет ошибочным). Если один операнд имеет тип uint, а второй - тип sbyte, short или int, то оба операнда продвигаются к типу long." И если рассматривать эти правила на примере: Кликните здесь для просмотра всего текста
то становится не понятно, где тут первый, а где второй операнд. И суть "продвижения" операндов к типу, тоже как бы в тумане. Я могу лишь предположить, что при продвижении беззнакового операнда к типу со знаком, его старшему разряду устанавливается значение. А также все разряды дополняются необходимым количеством разрядов, для перевода в более крупный тип. Однако не понятно, почему тогда: "Если один операнд имеет тип ulong, то и второй операнд продвигается к типу ulong (НО ЕСЛИ ВТОРОЙ ОПЕРАНД ИМЕЕТ ТИП sbyte, short, int или long, РЕЗУЛЬТАТ БУДЕТ ОШИБОЧНЫМ)." Ведь для приведения мелкого типа к крупному, если я все правильно понял в этой операции, требуется дополнение недостающих разрядов, и изменение состояния старшего разряда. Шилдт, C# 4.0 полное руководство, стр.93
0
|
|
12.04.2013, 11:21 | |
Ответы с готовыми решениями:
0
Приведение типов в выражениях Преобразование типов Преобразование типов
|
12.04.2013, 11:21 | |
Помогаю со студенческими работами здесь
1
Преобразование типов Преобразование типов
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |