Перейти к содержанию
    

Keil, ARMCC 5.06 - uint128_t?

Доброго времени

Вот понадобилось. Вообще, задача связана с поиском по UniqID (96 бит) контроллеров на шине 485 по дереву

Можно нагородить обработку массива из трёх uint32_t, но, возможно, компилятор уже всё сделает за меня? :blush:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В GCC есть

https://stackoverflow.com/questions/34588650/uint128-t-does-not-name-a-type

 

 

Изменено пользователем antis

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А компилятор не превратит сравнение двух 16-байтных "чисел" в треш? Не выгодней ли будет использовать memcmp? Или вообще представить это как массив из четырех uint32_t и XOR'ить поочередно, пока ответ нулевой..

Как-то  так:

uint8_t Cmp(const void *s1, const void *s2){ // return 0 if s1 and s2 are equal
	const uint32_t *c1 = (uint32_t*)s1, *c2 = (uint32_t)s2;
	int8_t n = 3;
	while(n--){
		if(*c1++ != *c2++) return 1;
	}
	return 0;
}

 

Изменено пользователем Eddy_Em

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну вы, блин, даёте... 128 битов. Сделайте структуру, сравнивайте по частям. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 минуты назад, ViKo сказал:

Ну вы, блин, даёте... 128 битов. Сделайте структуру, сравнивайте по частям. 

Да кто ж спорит-то, мне бы да за меня :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...