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

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

Войти
Регистрация
Восстановить пароль
 
Шерлок
0 / 0 / 0
Регистрация: 02.12.2012
Сообщений: 16
#1

Шестнадцатеричная система - C++

05.12.2012, 16:04. Просмотров 1132. Ответов 4
Метки нет (Все метки)

Задано шестнадцатеричное число. Напечатать таблицу умножения в шестнадцатеричной системе счисления от 1 до данного числа. Помогите пожалуйста, вариантов нету вообще(((
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2012, 16:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Шестнадцатеричная система (C++):

Шестнадцатеричная система счисления - C++
Возможно ли такое в шестнадцатирично системе... что значение без букв???? Так как остатки не превышали 9! Вот это число которое я переводил...

Шестнадцатеричная чисельная система - C++
Нужно написать программу для перевода с 10-знаковой системы в 16. Хочу делать по такому плану: если остаток от деления , то просто...

Для чего используется шестнадцатеричная система счисления? - C++
Всем привет, заметил что в больших проектах часто вместо записи обычных чисел их прописывают в шестнадцатеричной система счисления, в чём...

Записать hex( шестнадцатеричная система счисления ) код файла в блокнот - C++
Здравствуйте, как записать hex код файла в блокнот ? Добавлено через 24 минуты проблема решена.

Шестнадцатеричная цифра - C++
как вывести k-ую справа шестнадцатеричную цифру целого положительного числа на экран в десятичной записи? что-то я не совсем...

Шестнадцатеричная система - Информатика
Помогите,пожалуйста,рассчитать и представить результат в шестнадцатеричной системе : (0x3<<4)|(0xB>>2)=

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
05.12.2012, 16:17 #2
Таблицу умножения знаете?

Создаёте двумерный массив размером на 1 больше, чем число (число строк и столбцов равны). Нулевой столбец и строку заполняете числами от 1 до заданного числа. Все остальные элементы - произведение.

Далее идёт стандартный вывод массива на консоль.
0
taras atavin
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
05.12.2012, 16:52 #3
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
void OutMull(char *Num, HDC Context, signed int left, signed int top, DOCINFO *di)
{
 StartDoc(Context, di);
 static char digits[2][16]={{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}, {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}};
 signed int i;
 signed int d;
 signed int rd;
 signed int n;
 signed int x;
 signed int y;
 signed int m;
 unsigned int L;
 TEXTMETRIX tm;
 char *p;
 for (p=Num, L=0; x=0; *p!=0; ++p, n*=16)
 {
  for (d=15, d>=0; --d, x*=16)
  {
   for (i=1, i>=0; --i)
   {
    if (digits[i][d]==*p)
    {
     rd=d;
    }
   }
   x+=rd;
   L+=1;
  }
 }
 n/=16;
 GetTextMetrics(Context, tm); 
 for (x=n; x>0; --x)
 {
  for (y=n; y>0; --y)
  {   
   for (m=x*y, d=2*L-1; d>=0; --d, m/=16)
   {
    TextOut(Context, ((x-1)*2*L+L+d)*(tm.tmAveCharWidth+4)+left, ((y-1)*2*L+L)*(tm.Height+4)+top, digits[0][m%16], 1);
   }
  }
 }
 for (x=n; x>0; --x)
 {
  for (m=x, d=L-1; d>=0; --d, m/=16)
  {
   TextOut(Context, d*(tm.tmAveCharWidth+4)+left, ((x-1)*2*L+L)*(tm.Height+4)+top, digits[0][m%16], 1);   
   TextOut(Context, ((x-1)*2*L+L+d)*(tm.tmAveCharWidth+4)+left, top, digits[0][m%16], 1);
   MoveToEx(Context, left, top+tm.Height+2, NULL);
   LineTo(Context, left+(L+2*L*n)*(tm.tmAveCharWidth+4), ((x-1)*2*L+L)*(tm.Height+4)+top+2, NULL);
   MoveToEx(Context, ((x-1)*2*L+L+d)*(tm.tmAveCharWidth+4)+left+2, top, NULL);
   LineTo(Context, ((x-1)*2*L+L+d)*(tm.tmAveCharWidth+4)+left+2, ((n-1)*2*L+L)*(tm.Height+4)+top, NULL);
  }
 }
 MoveToEx(Context, left, top+tm.Height+2, NULL);
 LineTo(Context, left+(L+2*L*n)*(tm.tmAveCharWidth+4), top+tm.Height+2, NULL);
 MoveToEx(Context, left+L*(tm.tmAveCharWidth+4), top, NULL);
 LineTo(Context, left+L*(tm.tmAveCharWidth+4), ((n-1)*2*L+L)*(tm.Height+4)+top, NULL);
 EndDoc(Context);
}
Контекст и кокинфо созавай сам, функция только для винды, может глючить в ширину.
0
WhiteP
606 / 204 / 23
Регистрация: 20.11.2012
Сообщений: 426
05.12.2012, 16:59 #4
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
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
 
void print_hex(int x_max)
{
    int width = log(x_max * x_max)/log(16)+2;
 
    for(int i=0;i<width+1;i++) 
        cout<<" ";
    for(int i = 1; i <= x_max; i++) 
        cout<<setw(width)<<hex<<i;
    cout<<endl;
    for(int i = 1; i <= (x_max*width)+(width*2); i++)
        cout<<'-';
    cout<<endl;
 
    for(int i = 1; i <= x_max; i++)
    {
        cout<<setw(width)<<i<<'|';
        for(int j = 1; j <= x_max; j++)
            cout<<setw(width)<<hex<<i*j;
        cout<<endl;
    }
        
}
 
int main()
{
    int x = 0;
    cout<<"Enter x: ";
    cin>>x;
    print_hex(x);
    return 0;
}
0
Миниатюры
Шестнадцатеричная система  
taras atavin
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
05.12.2012, 18:16 #5
Цитата Сообщение от WhiteP Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void print_hex(int x_max)
{
* * int width = log(x_max * x_max)/log(16)+2;
for(int i=0;i<width+1;i++) 
* * * * cout<<" ";
* * for(int i = 1; i <= x_max; i++) 
* * * * cout<<setw(width)<<hex<<i;
* * cout<<endl;
* * for(int i = 1; i <= (x_max*width)+(width*2); i++)
* * * * cout<<'-';
* * cout<<endl;
for(int i = 1; i <= x_max; i++)
* * {
* * * * cout<<setw(width)<<i<<'|';
* * * * for(int j = 1; j <= x_max; j++)
* * * * * * cout<<setw(width)<<hex<<i*j;
* * * * cout<<endl;
* * }
}
С принтером эта функция не знакома.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2012, 18:16
Привет! Вот еще темы с ответами:

Как и зачем в С# используется шестнадцатеричная система счисления? - C#
Часто встречаю код такого вида private const int APPCOMMAND_VOLUME_MUTE = 0x80000; private const int APPCOMMAND_VOLUME_UP =...

Шестнадцатеричная запись - Программирование
Добрый день. Зачем при записи числа в 16ричной системе счисления писать 0x в начале числа? Например: 0xFF. Почему не просто: FF?

Определить количество простых чисел, не превосходящих заданное число (N<16000), шестнадцатеричная форма записи которых является палиндромом - Pascal
Помогите написать программу. Задача: Определить количество простых чисел, не превосходящих заданное число (N&lt;16000),...

Файловая система и система управления вводом-выводом в ОС Linux - C++ Linux
Дали задание написать вот что: &quot;Разработать программу, которая выводит на экран содержимое текущего каталога, упорядоченное по времени...


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

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

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