С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
lexflax
10 / 10 / 1
Регистрация: 03.04.2011
Сообщений: 627
#1

Нужны комментарии к коду - C++

13.12.2013, 16:25. Просмотров 1714. Ответов 18
Метки нет (Все метки)

Доброго времени суток.
Нашел такой код с++
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 // таблица замен
 byte Tab_Z[8][16] =
 {
  0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,
  0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,
  0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,
  0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,
  0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,
  0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,
  0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,
  0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF
 };
// ключик
 unsigned long key[8] =
 {
  0x0123,
  0x4567,
  0x89AB,
  0xCDEF,
  0x0123,
  0x4567,
  0x89AB,
  0xCDEF
 };
Как расшифровать значения в таблице замен? это шестнадцатиричная кодировка? есть таблица по которой можно посмотреть чему равны данные значения в десятичном коде? или метод перевода?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2013, 16:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нужны комментарии к коду (C++):

Нужны комментарии к коду - C++
что здесь происходить double *x=new double ; double **b=new double *; for(i=0;i<n;i++) b=new double; double **a=new double...

Нужны комментарии к коду - C++
#include<iostream.h> #include<math.h> int maximal(int n,double R0); void main(){ int i,j,n,f,k,iter; double S,det; ...

Нужны комментарии к коду - C++
int bestStr(char** file, int numstr) { int iBest = -1, bestwords = 0; for (int i = 0; i < numstr; i++) { int goodwords =...

Нужны комментарии к коду - C++
pair<bool, array<int, 81>> SOL(const char* inp) { array<int, 81> ANS; int* TAB = ANS.data(); int emp; int c = 0; int i, j,...

Нужны комментарии к коду - C++
#include <iostream> #include <cmath> using namespace std; //ЗАДАЧА #14 void print_array(int *a, int n) { for (int...

Список (нужны комментарии к коду) - C++
вот код на cpp обьясните плиз последние 5 строк.и this. template <class genius1> class List_Elem { friend class List <genius1>; ...

18
Doksim
57 / 57 / 8
Регистрация: 08.12.2013
Сообщений: 257
13.12.2013, 16:28 #2
http://vestikinc.narod.ru/AB/hex_dec_tr.htm
1
Matan!
Delphi/Java/DB Dev + Math
336 / 202 / 41
Регистрация: 31.05.2013
Сообщений: 1,649
Записей в блоге: 3
Завершенные тесты: 2
13.12.2013, 16:43 #3
Это адреса памяти.
Да,это 16-ричная система.

Добавлено через 1 минуту
Цитата Сообщение от Doksim Посмотреть сообщение
Э,брат,не всё так просто.Переводить надо только то,что стоит после значка х
Поскольку вид чисел 0х......... указывает на 16-ричную систему счисления.

Добавлено через 1 минуту
А так по идее,всё просто:
11=А,
12=B,
13=C,
14=D,
15=E,
16=F
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.12.2013, 16:45 #4
Что тут, собственно, переводить? В таблице, в каждой строке, числа от 0 до 15. Ключи, в десятичном виде, можно увидеть, если вывести на консоль массив key через cout <<.
0
Миниатюры
Нужны комментарии к коду  
Doksim
57 / 57 / 8
Регистрация: 08.12.2013
Сообщений: 257
13.12.2013, 16:45 #5
Цитата Сообщение от Matan! Посмотреть сообщение
Э,брат,не всё так просто.Переводить надо только то,что стоит после значка х
Поскольку вид чисел 0х......... указывает на 16-ричную систему счисления.
это продразумевается.
0
Matan!
Delphi/Java/DB Dev + Math
336 / 202 / 41
Регистрация: 31.05.2013
Сообщений: 1,649
Записей в блоге: 3
Завершенные тесты: 2
13.12.2013, 16:47 #6
А так всё просто:
11=A
12=B
13=C
14=D
15=E
16=F
Дальше повтор:
17=A1
...
0
ValeryS
Модератор
6729 / 5138 / 485
Регистрация: 14.02.2011
Сообщений: 17,254
13.12.2013, 16:49 #7
Цитата Сообщение от Matan! Посмотреть сообщение
Это адреса памяти.
это?
Цитата Сообщение от lexflax Посмотреть сообщение
0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,
или это?
Цитата Сообщение от lexflax Посмотреть сообщение
0x0123,
это в какой системе?
там же ясно написано
Цитата Сообщение от lexflax Посмотреть сообщение
key[8]
ключ
Цитата Сообщение от lexflax Посмотреть сообщение
// таблица замен
Цитата Сообщение от lexflax Посмотреть сообщение
есть таблица по которой можно посмотреть чему равны данные значения в десятичном коде? или метод перевода?
не поверишь есть
Калькулятор в виндовс называется
а вообще учи
до шестнадцати на память должен знать и двоичку и шеснадцетеричку
0
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
13.12.2013, 16:50 #8
Цитата Сообщение от lexflax Посмотреть сообщение
Как расшифровать значения в таблице замен?
Ни как, так как они не зашифрованы.
Цитата Сообщение от lexflax Посмотреть сообщение
это шестнадцатиричная кодировка?
Нет. Кодировка - это представление символов в файле, а здесь уже готовые цифры.
0
ValeryS
Модератор
6729 / 5138 / 485
Регистрация: 14.02.2011
Сообщений: 17,254
13.12.2013, 16:52 #9
Цитата Сообщение от Matan! Посмотреть сообщение
Дальше повтор:
17=A1
серьезно
а не 0х11?
Цитата Сообщение от Matan! Посмотреть сообщение
11=A
12=B
13=C
14=D
15=E
16=F
вычти 1 получишь правильный ответ
интересно а 10(в десятичке) в твоей кодировке как представляется
1
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
13.12.2013, 16:53 #10
Цитата Сообщение от Matan! Посмотреть сообщение
16=F
Цитата Сообщение от Matan! Посмотреть сообщение
16=F
Бред несёшь. В 16-чной системе цфры до 15-ти, а не 16-ти, так как начинаются с 0, как десятичные. A==10, B==11, C==12, D==13, E==14, F==15.

Добавлено через 1 минуту
Цитата Сообщение от Matan! Посмотреть сообщение
17=A1
A1==161.
0
lexflax
10 / 10 / 1
Регистрация: 03.04.2011
Сообщений: 627
13.12.2013, 17:01  [ТС] #11
Цитата Сообщение от Matan! Посмотреть сообщение
Это адреса памяти.
Да,это 16-ричная система.
А как понять адреса? точнее как адрес можно использовать в программе и оперировать им? С помощью адреса можно узнать какое значение хранится в нем? и какие еще операции можно проводить с адресом памяти?
0
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
13.12.2013, 17:04 #12
Цитата Сообщение от lexflax Посмотреть сообщение
С помощью адреса можно узнать какое значение хранится в нем?
Можно. Но не с помощью одно лишь адреса, надо ещё разыменовать указатель, значением которого он является. Оператор разыменования - унарная звёздочка.
1
lexflax
10 / 10 / 1
Регистрация: 03.04.2011
Сообщений: 627
13.12.2013, 17:06  [ТС] #13
Цитата Сообщение от taras atavin Посмотреть сообщение
Можно. Но не с помощью одно лишь адреса, надо ещё разыменовать указатель, значением которого он является. Оператор разыменования - унарная звёздочка.
а можно маленький но простой пример? где наглядно было плюсы и действия которые произвелись?
0
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
13.12.2013, 17:18 #14
Только для однозадачных систем:
C++
1
2
3
int *a; //декларируем указатель.
a=0x3a4be; // Записываем в указатель адрес, можно взять и из другого данного.
std::cout<<*a; // Выводим данное по адресу 0x3a4be.
,
C++
1
std::cout<<*((int *)(a)); // Выводим данное по адресу, равному значению данного по имени a.
.

Добавлено через 53 секунды
В многозадачных системах есть одна особенность: произвольно присвоенный адрес может быть не действителен, то есть по такому адресу может вообще не быть памяти.
0
lexflax
10 / 10 / 1
Регистрация: 03.04.2011
Сообщений: 627
13.12.2013, 17:21  [ТС] #15
Цитата Сообщение от taras atavin Посмотреть сообщение
В многозадачных системах есть одна особенность: произвольно присвоенный адрес может быть не действителен, то есть по такому адресу может вообще не быть памяти.
И как тогда в таких случаях поступают? как вообще можно узнать какой адрес можно присваивать переменной? вдруг этот адрес уже занят другим значением, или как вы сказали данному адресу не выделена память..
0
13.12.2013, 17:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2013, 17:21
Привет! Вот еще темы с ответами:

Нужны комментарии к коду с указателями - C++
Добавить комментарии к коду так, что бы можно было понять что и как используется. #include &lt;iostream&gt; #include &lt;cmath&gt; #include...

Ханойская башня (нужны комментарии к коду) - C++
#include &lt;iostream&gt; using namespace std; int numberofMoves = 0; void towerofHanoi(int discs, char peg1, char peg2, char...

Преобразование строк (нужны комментарии к коду) - C++
Вот код программы :Задана строка, состоящая из символов. Символы объединяются в слова. Слова друг от друга отделяются одним или несколькими...

Сортировка массива (нужны комментарии к коду) - C++
Объясните пожалуйста, что значит каждый рядок 1 #include &lt;iostream&gt; void compare(int arr,int size) { for(int i = 0; i...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.