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

 
 
> Глюк 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
Ответов
MrYuran
сообщение May 7 2008, 12:18
Сообщение #2


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

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



Цитата
unsigned long long tmp = (unsigned int) data;

Ну и чему вы удивляетесь?
int упорядочен по 2 байта, вот и получите!

Если уж приводить к типу, то хотя бы к такому же, то есть unsigned long long tmp =(unsigned long long)data


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
VladimirYU
сообщение May 7 2008, 13:10
Сообщение #3


Местный
***

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



Цитата(MrYuran @ May 7 2008, 16:18) *
Ну и чему вы удивляетесь?
int упорядочен по 2 байта, вот и получите!

Если уж приводить к типу, то хотя бы к такому же, то есть unsigned long long tmp =(unsigned long long)data


Пробовал, не помогает, да это и не принципиально ИМХО. А выделенную фразу поясните, если нетрудно. Версия 4.12 для AVR.
Go to the top of the page
 
+Quote Post



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

 


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


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