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

 
 
> создать структуру, она должна представлять собой 96-битное беззнаковое целое
Метценгерштейн
сообщение Dec 13 2014, 18:05
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



вот как бы реализовать это?
чтобы работать с типом данных как uint96
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Xenia
сообщение Dec 13 2014, 19:07
Сообщение #2


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(Метценгерштейн @ Dec 13 2014, 21:05) *
вот как бы реализовать это?
чтобы работать с типом данных как uint96


Создать структуру на требуемое число байт не проблема - например, хотя бы массив на 96 символов туда записать. Однако "работу с таким типом данных" пришлось бы все равно программировать вам самому, т.к. компилятору неизвестно, как над этими структурами проводить операции.

На простом C это сделать, по-видимому, невозможно, т.к. он не позволяет определять арифметические операторы над самодельным объектами. Это прозволяет сделать язык C++, но определения операций все равно пришлось бы писать вручную, подобно тому, когда на асемблере 8-битного процессора пытаешь умножить два 32-битных числа. Т.е. делать это придется по частям.

Но можно и на простом С отказаться от использования арифметических операторов, а вместо них написать свои функции add( uint96 a, uint96 b ) для сложения, sub( uint96 a, uint96 b ) для вычитания, и т.д. Насколько хорошо вы их напишете, настолько хорошо и будет работать такая арифметика.

Сам же компилятор умеет работать только с предопределенными типами данных, для которых заранее известно, каков должен быть результат их работы. Сами же структуры есть лишь только крупные компактные блоки, сформированные упаковкой более мелких. Никаких новых операций, кроме компирования блоков одного размера из одного в другой, определение структуры не порождает. И только на языке C++ можно обозвать стуктуру классом, а после этого добавить в нее определение специфических для этой структуры данных операторов.

P.S Компилятор у вас какой?
Go to the top of the page
 
+Quote Post



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

 


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


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