- 
	- Тут не думать надо, а в стандарт смотреть. Стандарт говорит, что "2147483648" имеет тип long long int, и точка. Что там эклипс себе придумал, пусть остаётся на его совести. А всё-таки, почему не "long x = -1;"? Это ведь то же самое, но без изврата. - SciFi(12.01.2016 14:04)
			- Какой стандарт!!! префиксы, платформонезависимость!!! :)   IBAH(59 знак., 12.01.2016 17:17 - 17:32, ссылка)
					- Это да, это правильно. Если НЕ ДУМАЯ читать стандарт, то в нем и префиксных операторов не заметишь, и число 2147483648 превратится в (-1) вместо (1<<31), и не влезет ни в поле int32, ни в заявленный компьютерный long64, а потребует целый long  Petrovich(813 знак., 13.01.2016 11:42,  ) )- Хе-хе. Спасибо за призыв думать :-) А я не буду говорить, куда вам нужно идтичто вам нужно делать :-) SciFi(133 знак., 13.01.2016 11:51 - 11:53)- Да если б я сразу догадался написать, что 2147483648 это (1<<31), то ты, уверен, сразу понял бы, что это не -1, а для внутрикомпиляторного int32 число -2147483648 поэтому к тебе без претензий, ты ж не обязан знать десятичное представление  Petrovich(122 знак., 13.01.2016 12:07,  ) )- Чота меня переклинило про -1. Конечно, имел в виду -2147483648. Ну и всё-таки присваивать (1<<31) целому со знаком - не очень-то комильфо. Для таких дел есть беззнаковые типы. - SciFi(13.01.2016 12:19)
													- В Java нет беззнаковых, поэтому и взял 64-бит long. А вообще стояла задача показать юнным программистам Java неявную ошибку, связанную с присвоением разнодлинных типов при распространении знака. За основу взяты наши, похожие микроконтроллерные  Petrovich(209 знак., 13.01.2016 12:37,  ) )- Блин, это жаба? Нет, про жабу не знаю. - SciFi(13.01.2016 12:44)
 
 
- В Java нет беззнаковых, поэтому и взял 64-бит long. А вообще стояла задача показать юнным программистам Java неявную ошибку, связанную с присвоением разнодлинных типов при распространении знака. За основу взяты наши, похожие микроконтроллерные  Petrovich(209 знак., 13.01.2016 12:37, 
 
- Чота меня переклинило про -1. Конечно, имел в виду -2147483648. Ну и всё-таки присваивать (1<<31) целому со знаком - не очень-то комильфо. Для таких дел есть беззнаковые типы. - SciFi(13.01.2016 12:19)
													
 
- Да если б я сразу догадался написать, что 2147483648 это (1<<31), то ты, уверен, сразу понял бы, что это не -1, а для внутрикомпиляторного int32 число -2147483648 поэтому к тебе без претензий, ты ж не обязан знать десятичное представление  Petrovich(122 знак., 13.01.2016 12:07, 
 
- Хе-хе. Спасибо за призыв думать :-) А я не буду говорить, 
 
- Это да, это правильно. Если НЕ ДУМАЯ читать стандарт, то в нем и префиксных операторов не заметишь, и число 2147483648 превратится в (-1) вместо (1<<31), и не влезет ни в поле int32, ни в заявленный компьютерный long64, а потребует целый long  Petrovich(813 знак., 13.01.2016 11:42, 
 
- Какой стандарт!!! префиксы, платформонезависимость!!! :)   IBAH(59 знак., 12.01.2016 17:17 - 17:32, ссылка)
					
 
- Тут не думать надо, а в стандарт смотреть. Стандарт говорит, что "2147483648" имеет тип long long int, и точка. Что там эклипс себе придумал, пусть остаётся на его совести. А всё-таки, почему не "long x = -1;"? Это ведь то же самое, но без изврата. - SciFi(12.01.2016 14:04)