реклама на сайте
подробности

 
 
> Глюк IAR или мой, приведение типов
VladimirYU
сообщение May 7 2008, 12:02
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 5-04-07
Из: Санкт-Петербург
Пользователь №: 26 782



В IAR AVR 4.12 столкнулся вот с чем:

// имею
int data = 0xabd6;

// хочу увеличить разрядность до 32 без знака
unsigned int tmp = (unsigned int) data;

// получаю tmp = 0x0000abd6, что и хотел

а теперь вместо 32 захотел увеличить разрядность до 64 без знака из исходного data
unsigned long long tmp = (unsigned int) data;

// получаю tmp = 0x6dba000000000000

?????????????
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
prottoss
сообщение May 7 2008, 13:01
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



У меня получилось как положено = 0x000000000000ABD6

IAR C/C++ Compiler for ARM
4.42A Evaluation (4.42.1.201)


--------------------
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 7 2008, 13:18
Сообщение #3


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(prottoss @ May 7 2008, 16:01) *
У меня получилось как положено = 0x000000000000ABD6

IAR C/C++ Compiler for ARM
4.42A Evaluation (4.42.1.201)

Повезло.
АРМ существо 32-разрядное, там вероятность "перекоса" 64р слов меньше, чем в 8-битном АВР, всего лишь 50х50

стоп...
Цитата
получаю tmp = 0x6dba000000000000

чё, на самом деле задом наперёд?
я чё-то не посмотрел сначала..
Тогда непонятно вообще


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 16:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01354 секунд с 7
ELECTRONIX ©2004-2016