Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 08.10.2014
Сообщений: 17
1

Перебор в шестнадцатеричной системе счисления

06.02.2020, 18:51. Показов 1556. Ответов 2
Метки с++ (Все метки)

Здравствуйте, может кто подсказать, есть программа, которая перебирает числа в шестнадцатеричной системе исчисления и записывает в файл, но перебирает так, что последнее число FF, а потом начинает с начала. Как сделать так, чтобы программа перебила числа до 256 бит.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        int n;
    cin >> n;
    
    unsigned char k = 0x0;
    ofstream outfile("keys.txt");
    
    unsigned int start_time = clock();
    for (int i = 0; i < n; i++)
    {
        k += 0x1;
        outfile << uppercase << hex << (int)k << endl;
        
    }
    unsigned int end_time = clock(); // конечное время
    unsigned int search_time = end_time - start_time; // искомое время
    cout << "runtime = " << search_time / 1000 << " sec";
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.02.2020, 18:51
Ответы с готовыми решениями:

Cout вывод числа в двоичной и шестнадцатеричной системе счисления
Помогите пожалуйста. Как сделать чтобы выводило не... 1 = 100000000000000000000000000000001, а...

Даны три числа в шестнадцатеричной системе счисления. Определить наименьшее из них
Вот эти числа: 1. а=A, в=22, с=41 2. а=4C, в=5, с=37 3. а=B, в=4B, с=14 Как это реализовать...

Класс для выполнения арифметических операций над целыми числами в шестнадцатеричной системе счисления
Помогите разобраться с задачей пожалуйста. Недавно начала изучать классы и не знаю как выполнить...

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

2
Модератор
Эксперт С++
11047 / 9113 / 5474
Регистрация: 18.12.2011
Сообщений: 24,378
06.02.2020, 19:15 2
Лучший ответ Сообщение было отмечено VladS как решение

Решение

До 64 бит:

C++
1
2
3
4
5
6
7
8
9
10
11
12
    unsigned long long k = 0x0;
    unsigned long long n;
    cin>>n;
    ofstream outfile("keys.txt");
    
    for (unsigned long long i = 0; i < n; i++)
    {
        k++;
        outfile << uppercase << hex << k << endl;
        
    }
    outfile.close();
И, кстати для 64 битного числа нужно записать в файл до 9223372036854775807 = 1019 (1010 гигов) строк.
Уверены?
Может выделить какой-то фрагмент?
C++
1
2
3
4
5
6
    unsigned long long n1,n2;
    cin>>n1>>n2;
    ofstream outfile("keys.txt");
    for (unsigned long long i = n1; i < n2; i++)
         outfile << uppercase << hex << i << endl;
    outfile.close();
0
0 / 0 / 1
Регистрация: 08.10.2014
Сообщений: 17
06.02.2020, 21:09  [ТС] 3
Спасибо за ответ, то есть чтобы перебрать все 256 битные ключи, необходимо перебрать все комбинации из четырех блоков по 64 бита?

Добавлено через 58 минут
Хотел бы узнать, правильная ли реализация?

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
unsigned long long n;
    cin >> n;
    
    unsigned long long k1 = 0x0;
    unsigned long long k2 = 0x0;
    unsigned long long k3 = 0x0;
    unsigned long long k4 = 0x0;
    ofstream outfile("keys.txt");
    
    unsigned int start_time = clock();
    
    
    for (int i = 0; i < n; i++)
    {
        k1 += 0x1;
        outfile << uppercase << hex << (int)k1;
        
        for (int z = 0; z < n, z++)
        {
            k2 += 0x1;
            outfile << uppercase << hex << (int)k2;
        
            for (int l = 0; l < n, l++)
            {
            k3 += 0x1;
            outfile << uppercase << hex << (int)k3;
        
                for (int p = 0; p < n; p++)
                {
                            k4 += 0x1;
                            outfile << uppercase << hex << (int)k4 << endl;
                }
 
            }
 
        }
        
        
        
        
    }
    unsigned int end_time = clock(); // конечное время
    unsigned int search_time = end_time - start_time; // искомое время
    cout << "runtime = " << search_time / 1000 << " sec";
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.02.2020, 21:09

Вывод в шестнадцатеричной системе
Нужно написать программу, которая выводит символы от А до Z в таблице. Первый столбец - порядковый...

Запись констант в шестнадцатеричной системе
Сейчас изучаю библиотеки связанные с блютуз и вот такая интересная штука почти везде используется...

Перевод из шестнадцатеричной системы счисления в восьмеричную
Создал в классе такой метод перевода из шестнадцатеричной системы счисления в восьмеричную: String...

Проверить корректность числа в заданной системе счисления и перевести в другую систему счисления
На вычислительной практике дали такое задание: С клавиатуры вводятся 2 положительных целых...


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

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

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