Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

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

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

как понять значение кода с++ - C++

13.12.2013, 16:25. Просмотров 1581. Ответов 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++
Имеется некий абстрактный класс. от него имеется производный класс Задание работа с данными(чтение из файла, запись в файл) средствами Си...

Не могу понять как написать в switch - если значение не действительно - C++
Не могу понять как написать в switch statement "Error - the day you entered is not valid". Стоит задача: Написать программу,...

Из кода понять функцию - C++
http://vkontakte.ru/photo1346767_264351810 вот фото, препод дал сказал выяснить, что за формула или функция в этом коде, залил бы на...

Стек на основе массива структур - эт как понять читаю литературу и не могу понять! - C++
Стек статически (на основе массива структур). Пример структура "Товар" которая включает в себя: № по каталогу(ключ), Название, цена, срок...

не могу понять описание, требуеться пояснение кода - C++
суть такая нашел статью по этому адресу, суть создания dll в с++. Вот ссылка: http://www.hardline.ru/1/5/1534/ когда стал изучать все...

Не могу понять 2 строки кода функции из методички - C++
Это код добавления элемента в линейный двунаправленный список. Не пойму 12 и 13 строки. Указатель pCurrent->next(указатель на след. элемент...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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!
271 / 121 / 25
Регистрация: 31.05.2013
Сообщений: 1,104
Записей в блоге: 2
Завершенные тесты: 1
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
5419 / 4815 / 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!
271 / 121 / 25
Регистрация: 31.05.2013
Сообщений: 1,104
Записей в блоге: 2
Завершенные тесты: 1
13.12.2013, 16:47 #6
А так всё просто:
11=A
12=B
13=C
14=D
15=E
16=F
Дальше повтор:
17=A1
...
0
ValeryS
Модератор
6631 / 5039 / 466
Регистрация: 14.02.2011
Сообщений: 16,847
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
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
13.12.2013, 16:50 #8
Цитата Сообщение от lexflax Посмотреть сообщение
Как расшифровать значения в таблице замен?
Ни как, так как они не зашифрованы.
Цитата Сообщение от lexflax Посмотреть сообщение
это шестнадцатиричная кодировка?
Нет. Кодировка - это представление символов в файле, а здесь уже готовые цифры.
0
ValeryS
Модератор
6631 / 5039 / 466
Регистрация: 14.02.2011
Сообщений: 16,847
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
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
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
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
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
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2013, 17:21
Привет! Вот еще темы с ответами:

как правильно понять тип bool ? bool true(const string &str) и что дает это значение ? - C++
задам может глупый вопрос, но прошу ответить. как правильно понять тип bool ? bool true(const string &amp;str) и что дает это...

Не могу понять смысл данного задания, и написание его кода - C++
В одномерном массиве все отрицательные элементы переместить в начало массива, а остальные — в конец с сохранением порядка следования....

Определить, как изменится значение указателя при выполнении кода - C++
При выполнении операции: double *p; ++p; значение указателя р увеличится на: Выберите один ответ: 4

Объясните значение строки кода - C++
Объясните, пожалуйста, данную строчку cout &lt;&lt; (count % 2 ? &quot;****&quot; : &quot;++++++++&quot;) &lt;&lt; endl; я как бы вижу что программа выводит на экран,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.12.2013, 17:21
Ответ Создать тему
Опции темы

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