Russian Qt Forum
Ноябрь 23, 2024, 08:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Инвертирование  (Прочитано 8872 раз)
vldefender
Гость
« : Сентябрь 15, 2009, 13:11 »

Как делать инвертирование. В c++ есть функция inv, но компилятор пишет "нет декларации ‘inv’ в этой области видимости". Это нужно какой-то header подключить?
Записан
Rcus
Гость
« Ответ #1 : Сентябрь 15, 2009, 13:19 »

Инвертирование чего? "В C++" - это в стандартной библиотеке? не знаю такой функции.
Записан
vldefender
Гость
« Ответ #2 : Сентябрь 15, 2009, 13:34 »

Есть у меня кусок кода, который нужно включить в проект.
Код:
unsigned short esubkeys[52];
unsigned short dsubkeys[52];
dsubkeys[i] = inv(esubkeys[48-i]);
Когда я пытаюсь это скомпилировать, компилятор выдаёт выше указанную ошибку.
ЗЫ. это алгоритм шифрования, инвертирование нужно для создания ключа для дешифрования.
Записан
Khs
Гость
« Ответ #3 : Сентябрь 15, 2009, 13:37 »

Цитировать
C++ Math Library Reference      
inv

Matrix inverse

C++ Prototype

      mwArray inv(const mwArray &X);

C++ Syntax

      #include "matlab.hpp"

      mwArray X;             // Input argument(s)
      mwArray Y;             // Return value

      Y = inv(X);

MATLAB Syntax

      Y = inv(X)

больше не гуглится Улыбающийся либо inv - самописная Улыбающийся
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #4 : Сентябрь 15, 2009, 13:41 »

 а что-то типа:
Код:
...
int a = 1;
int b = ~a;
...

не подойдет ? Улыбающийся
Записан

ArchLinux x86_64 / Win10 64 bit
vldefender
Гость
« Ответ #5 : Сентябрь 15, 2009, 14:02 »

а что-то типа:
Код:
...
int a = 1;
int b = ~a;
...

не подойдет ? Улыбающийся
Ну это же инвертирование. Инвертирование - это число записанное наоборот, справа налево (вроде бы).

Про matlab.hpp я тоже нагугливал, но не смог его найти, на компе его нет.
ЗЫ. про инвертирование я правильно понимаю? Это число записанное наоборот?
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #6 : Сентябрь 15, 2009, 19:19 »

Цитировать
ЗЫ. про инвертирование я правильно понимаю? Это число записанное наоборот?
Нет, инвертирование - это логическая операция, было "истино" стало "ложно" и наоборот
обычное: 5 -> 0, 11->0, 0->1
побитовое: 0110 -> 1001, 0000->1111, 1111->0000 (здесь двоичное представление)
Записан

Юра.
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #7 : Сентябрь 15, 2009, 19:35 »

ЗЫ. про инвертирование я правильно понимаю? Это число записанное наоборот?
Нет такой однозначной операции "инвертирование" - их как минимум 2 (логическое или побитовое) только в языке. Можно и в своей задаче что-то назвать "инвертированием" - ничего плохого в этом не будет. Так что определитесь что Вам надо.
Записан
Tonal
Гость
« Ответ #8 : Октябрь 27, 2009, 09:40 »

Есть ещё инвертирование матриц. Улыбающийся
Чего надо то? Улыбающийся

Если "число записанное наоборот", то берём число записанное, и переворачиваем:
Код:
std::string inv(const std::string& num) {
  return std::string(num.rbegin(), num.rend());
}
Оно? Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.13 секунд. Запросов: 22.