Перейти к содержанию
Посмотреть в приложении

A better way to browse. Learn more.

Форум Академгородка, Новосибирск

A full-screen app on your home screen with push notifications, badges and more.

Чтобы установить это приложение на iOS и iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
Чтобы установить это приложение на Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

unsigned integer in fortran90

Опубликовано

Доброго дня. При написании быстрого преобразования Фурье на фортране возникла необходимость (и желание) использовать двоичную инверсию чисел, для нахождения индексов последовательных элементов. Для того, чтобы реализовать это, нужен тип переменных unsigned integer. Если конкретнее, то нужны целые числа размером 1 и 4 байта, у которых самый левый бит был бы значащим, а не знаковым.

Порывшись в Бартеньеве, полазив по гуглу мне показалось, что такой тип не предусмотре для данного стандарта. И вот вопрос: можно ли его создать самому? Или он все-таки там есть? Это наверно просто делается, но я пока не понимаю как.

Рекомендуемые сообщения

Опубликовано

В 95-м вроде как расширение есть, но и от компилятора зависит.

The Fortran 95 compiler accepts a new data type, UNSIGNED, as an extension to the language. Four KIND parameter values are accepted with UNSIGNED: 1, 2, 4, and 8, corresponding to 1-, 2-, 4-, and 8-byte unsigned integers, respectively.

http://docs.oracle.com/cd/E19422-01/819-3686/4_f95.html

Опубликовано
Я не знаток фортрана (стараюсь близко не подходить), но вроде бы его нет. Хотя есть расширение unsigned (kind=1,2,4,8) для Sun Fortran, ни gfortran ни ifort его похоже не поддерживают. Можно почитать еще вот это: http://software.intel.com/en-us/forums/topic/297670. Там есть обсуждение (ближе к концу) расширений для ifort. Но это не переносимо, конечно.
Опубликовано
  • Автор

Про 95й-то я знаю, просто не дадут мне на него перейти, когда вся лаба на 90м )

Сейчас идея появилась не мудрить, а просто использовать для unsigned integer*1 и *4 просто integer*2 и *4, посмотрим как выйдет.

 

 

Опубликовано
Для того, чтобы реализовать это, нужен тип переменных unsigned integer

 

Для проведения двоичной инверсии необходимости в беззнаковых числах нет

Опубликовано
  • Автор

Что можете посоветовать?

Понятно, что должен быть способ без них обойтись, надо просто найти его. Чем и занимаюсь.

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

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

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

Аккаунт

Навигация

Поиск

Поиск

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.