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

Перевод в 9-чную систему счисления - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 111, средняя оценка - 4.69
ЛеЖиК)
 Аватар для ЛеЖиК)
157 / 60 / 1
Регистрация: 29.04.2011
Сообщений: 630
02.01.2012, 13:23     Перевод в 9-чную систему счисления #1
есть задача, что бы решить ее до конца мне надо сделать перевод из 10-тичной(можно любой другой) в девятиричную систему счисления
я бы это сделал сам, если бы не странность системы.
В задание звучит так: Рассмотрим девятеричную позиционную систему счисления с цифрами { B, A, 0, 1, 2, 3, 4, 5, 6 }, где цифра A имеет значение -1, а цифра B – значение -2.

подскажите как сделать этот перевод(функцию или алгоритм)

Добавлено через 49 минут
up
есть идеи?

 Комментарий модератора 
По просьбе одного из авторов, в связи с тем, что тема растянулась, ссылки на решения в этой теме:
Решение 1
Решение 2
Решение 3
Решение 4
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
13.01.2012, 06:00     Перевод в 9-чную систему счисления #61
Цитата Сообщение от greeezz Посмотреть сообщение
Спасибо. Вечерком подумаю над задачкой.
Цитата Сообщение от greeezz Посмотреть сообщение
ну прям так и хочется добавить ..... и начинаешь строить атомную станцию.
ну по объему и сложности бумажной работы можно так выразиться. Тут мелочь - 4 одноразрядных переменных, а если представить что их даже 8 и более, то учитывая регулярные ошибки в рутинной работе можно неделю убить только на минимизацию функции, постоянно проверяя и выявляя ошибки не столько в расчетах (их просто нету) а "машинальные", но когда функция есть, то дело за малым как говорится. Правда саму минимизацию булевых функций мне программно делать не доводилось. Может и доведется.
Вот сложение без перевода на матрице. Т.к. в сс нету знака, то соотетственнно нету и вычитания, возник вопрос: "а необходима ли тут инверсия?" Будет время может еще что-то подумаю над умножением
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <limits.h>
#define n   9
 
/*** sum table in ASCI ***/
uint16_t t[ n ][ n ] = {
    { 0x4135, 0x4136, 0x3042, 0x3041, 0x3030, 0x3031, 0x3032, 0x3033, 0x3034 },
    { 0x4136, 0x3042, 0x3041, 0x3030, 0x3031, 0x3032, 0x3033, 0x3034, 0x3035 },
    { 0x3042, 0x3041, 0x3030, 0x3031, 0x3032, 0x3033, 0x3034, 0x3035, 0x3036 },
    { 0x3041, 0x3030, 0x3031, 0x3032, 0x3033, 0x3034, 0x3035, 0x3036, 0x3142 },
    { 0x3030, 0x3031, 0x3032, 0x3033, 0x3034, 0x3035, 0x3036, 0x3142, 0x3141 },
    { 0x3031, 0x3032, 0x3033, 0x3034, 0x3035, 0x3036, 0x3142, 0x3141, 0x3130 },
    { 0x3032, 0x3033, 0x3034, 0x3035, 0x3036, 0x3142, 0x3141, 0x3130, 0x3131 },
    { 0x3033, 0x3034, 0x3035, 0x3036, 0x3142, 0x3141, 0x3130, 0x3131, 0x3132 },
    { 0x3034, 0x3035, 0x3036, 0x3142, 0x3141, 0x3130, 0x3131, 0x3132, 0x3133 }
};
 
uint16_t sum_atom ( uint8_t x, uint8_t y ) {
    uint32_t i = ( x < 0x41 ) ? x - 0x30 + 2 : ( x == 'B' ? 0x0 : 0x1 );
    uint32_t j = ( y < 0x41 ) ? y - 0x30 + 2 : ( y == 'B' ? 0x0 : 0x1 );
    return t[ i ][ j ];
}
 
uint8_t *sum ( uint8_t* x, uint8_t* y ) {
    uint8_t tmp1 = strlen ( (char*) x );
    uint8_t tmp2 = strlen ( (char*) y );
    uint8_t *up = ( tmp1 == tmp2 ) ? x : ( tmp1 > tmp2 ? x : y);
    uint8_t *dwn = ( tmp1 == tmp2 ) ? y : ( tmp1 > tmp2 ? y : x );
    uint8_t len_up = strlen ( (char*) up );
    uint8_t len_dwn = strlen ( (char*) dwn );
    uint8_t len_res = len_up + 2;
    uint8_t *res, i = len_res - 1, t = '0';
    uint16_t next;
 
    if ( ( res = (uint8_t*) malloc(len_res * sizeof( uint8_t ) ) ) == NULL )
        exit ( -1 );
    else {
        --len_res;
        res[ i ] = '\0';
        while ( i-- )
            res[ i ] = '0';
 
        while ( len_res-- ) {
            next = sum_atom( ( len_up > 0 ) ? up[ --len_up ] : (uint8_t) '0', ( len_dwn > 0 ) ? dwn[ --len_dwn ] : (uint8_t)'0' );
            res[ len_res ] = sum_atom ( t, ( uint8_t ) ( next & 0x00ff ) );
            t = ( next >> CHAR_BIT );
        }
        return res;
    }
}
 
int main ( void )
{
    char *p, *t;
 
    p = (char*)sum( (uint8_t*) "24", (uint8_t*)"5A" );
    t = p;
    while ( ( *p   == '0') && *p )
        ++p;
    printf("%s\n", p );
    free( t );
 
    p = (char*)sum( (uint8_t*) "B5", (uint8_t*)"61" );
    t = p;
    while ( ( *p   == '0') && *p )
        ++p;
    printf("%s\n", p );
    free( t );
 
    p = (char*)sum( (uint8_t*) "312", (uint8_t*)"41B" );
    t = p;
    while ( ( *p   == '0') && *p )
        ++p;
    printf("%s", p );
    free( t );
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
13.01.2012, 07:42     Перевод в 9-чную систему счисления #62
Цитата Сообщение от ЛеЖиК) Посмотреть сообщение
Рассмотрим девятеричную позиционную систему счисления с цифрами { B, A, 0, 1, 2, 3, 4, 5, 6 }, где цифра A имеет значение -1, а цифра B – значение -2.
а где цифры со значениями 7 и 8 ?
запиши число 9
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
13.01.2012, 09:16     Перевод в 9-чную систему счисления #63
Цитата Сообщение от alkagolik Посмотреть сообщение
это называется совершенные нормальные формы, бывают дизъюнктивные (результат 1) и конъюнктивные (результат 0). Учи матчать. Теорию автоматов гулял с пивком наверное вместо лекций?))
Эм... Олимпиада то для школьников.
Я не понимаю, зачем нужны скобки, если можно просто в правильном порядке записать переменные.
Далее, для того, чтобы функция для вызова (0,0,0,0) возвращала 0, нужно, чтобы там было четное количество отрицаний(отрицание можно сделать с помощью X ^ 1 ). 0 отрицаний и 4 отрицания отпадают, если же перебрать все варианты по 2 отрицания, то функция будет валится на 2, 3 или 4 вызове.
ValeryS
Модератор
6376 / 4842 / 442
Регистрация: 14.02.2011
Сообщений: 16,047
13.01.2012, 11:05     Перевод в 9-чную систему счисления #64
Цитата Сообщение от accept Посмотреть сообщение
а где цифры со значениями 7 и 8 ?
запиши число 9
а чего тут сложного
7 1B 1*9+(-2)
8 1A 1*9+(-1)
9 10 1*9+0
......................
79 10B 1*9*9+(-2)
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
13.01.2012, 12:50     Перевод в 9-чную систему счисления #65
Цитата Сообщение от greeezz Посмотреть сообщение
Либо я чего-то не понял, либо ваш код не корректен.
ТЕСТ ПОЛОЖИТЕЛЬНЫХ ЧИСЕЛ

1 A
2 0
3 1
4 2
5 3
6 4
7 5
8 6
9 AB
10 AA
11 A0
12 A1
13 A2
14 A3
15 A4
16 A5
......


А должно быть
1 1
2 2
3 3
4 4
5 5
6 6
7 1B
8 1A
9 10
..... и так далее

А с отрицательными числами ваш код вообще работать не может.

Пожалуйста уточните если я не прав или не понял вашу точку зрения.
Я же вам написал, что все от строки SET зависит.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
#define SET "0123456BA"
 
void Print(int a)
{
    if (a)
    {
        Print(a / 9);
        std::cout << SET[a % 9];
    }
}
 
int main()
{
   int a;
   for(a = 1; a <= 9; a++)
   {
       Print(a);
       std::cout << "\n";
   }
   return 0;
}
А во вторых, кто вам сказал, что 7 = 1B. Если цифры не могут быть отрицательными, что предполагалось, то 7 = B. Ну, да ладно, если вы знакомы с алгебраическими структурами, кольцами вычетов и конечными полями, то поймете меня, что все с точностью до изоморфизма. Честно говоря, задача меня не заинтересовала, можно сказать, что случайно в этой теме оказался.
Mr.X
Эксперт С++
 Аватар для Mr.X
2802 / 1578 / 247
Регистрация: 03.05.2010
Сообщений: 3,666
13.01.2012, 14:26     Перевод в 9-чную систему счисления #66
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
/////////////////////////////////////////////////////////////////////////////////////////
//Рассмотрим девятеричную позиционную систему счисления 
//с цифрами { B, A, 0, 1, 2, 3, 4, 5, 6 }, 
//где цифра A имеет значение -1, а цифра B – значение -2.
//Выполните
//следующие операции и представьте результат в этой же самой системе счисления:
//24+5A     = 1B3
//B5+61     = 46
//52*A6     = B23
//312+41B   = 1B20
//A1A*B2B   = 15552
/////////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <iostream>
#include <cctype>
#include <string>
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::string  T_str;
/////////////////////////////////////////////////////////////////////////////////////////
const int   BASE_RADIX      = 9;
const int   A_DIG_VAL       = -1;
const int   B_DIG_VAL       = -2;
const int   MIN_DIG_VAL     = B_DIG_VAL;
const int   MAX_DIG_VAL     = MIN_DIG_VAL + BASE_RADIX - 1;
/////////////////////////////////////////////////////////////////////////////////////////
int  my_9ary_to_int(const T_str&  expr)
{
    int  int_res = 0;
 
    for(
        T_str::const_iterator  symb_it = expr.begin();
        symb_it != expr.end();
        ++symb_it
       )      
    {
        int_res *= BASE_RADIX;
 
        switch(*symb_it)
        {
        case 'A':
            int_res += A_DIG_VAL;
            break;
 
        case 'B':
            int_res += B_DIG_VAL;
            break;
 
        default:
            int_res += *symb_it - '0';
        }        
    }
    return  int_res;
}
/////////////////////////////////////////////////////////////////////////////////////////
T_str  int_to_my_9ary(int  int_val)
{    
    T_str   res_str;
    if(int_val == 0)
    {
        res_str = "0";
    }
 
    bool  is_negative = int_val < 0;
    if(is_negative)
    {
        int_val *= -1;
    }
 
    while(int_val)
    {
        int  int_last_dig = int_val % BASE_RADIX;
        if(is_negative)
        {
            int_last_dig *= -1;
        }
 
        int_val /= BASE_RADIX;
 
        while(int_last_dig > MAX_DIG_VAL)
        {
            int_last_dig -= BASE_RADIX;
            is_negative
                ? --int_val
                : ++int_val;            
        }
 
        while(int_last_dig < MIN_DIG_VAL)
        {
            int_last_dig += BASE_RADIX;
            is_negative
                ? ++int_val
                : --int_val;
        }
        
        char  char_last_dig = 0;
 
        switch(int_last_dig)
        {
        case A_DIG_VAL:
            char_last_dig = 'A';
            break;
 
        case B_DIG_VAL:
            char_last_dig = 'B';
            break;
 
        default:
            char_last_dig = '0' + int_last_dig;
            break;
        }
        res_str.push_back(char_last_dig);
    }
    std::reverse
        (
            res_str.begin(),
            res_str.end()
        );
 
    return  res_str;
}
/////////////////////////////////////////////////////////////////////////////////////////
T_str  calc_expr(const T_str&  expr)
{
    T_str::size_type    op_pos  =   expr.find_first_of("+*");
 
    T_str   L                   =   expr.substr
                                        (
                                            0,
                                            op_pos
                                        ); 
 
    T_str   R       =   expr.substr(op_pos + 1); 
 
    int     L_int   =   my_9ary_to_int(L);
    int     R_int   =   my_9ary_to_int(R);
 
    int     int_res     =   0;
    switch( expr[op_pos] )
    {
    case '+':
        int_res = L_int + R_int;
        break;
 
    case '*':
        int_res = L_int * R_int;
        break;
    }
 
    return  int_to_my_9ary(int_res);
}
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    std::cout << "Ведите без пробелов пример сложения или умножения чисел"
              << std::endl
              << "в девятеричной системе счисления с цифрами { B, A, 0, 1, 2, 3, 4, 5, 6 }, "
              << std::endl
              << "где цифра A имеет значение -1, а цифра B – значение -2:";              
 
    for(;;)
    {
        std::cout << std::endl
                  << std::endl
                  << "-> ";
 
        T_str  expr;
        std::cin >> expr;
        std::cout << calc_expr(expr)
                  << std::endl;
    }
}
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
13.01.2012, 15:21     Перевод в 9-чную систему счисления #67
Цитата Сообщение от diagon Посмотреть сообщение
Я не понимаю, зачем нужны скобки, если можно просто в правильном порядке записать переменные.
Далее, для того, чтобы функция для вызова (0,0,0,0) возвращала 0, нужно, чтобы там было четное количество отрицаний(отрицание можно сделать с помощью X ^ 1 ). 0 отрицаний и 4 отрицания отпадают, если же перебрать все варианты по 2 отрицания, то функция будет валится на 2, 3 или 4 вызове.
изучаем тему "минимизация булевых функций" и всё станет на свои места.

Добавлено через 17 минут
Цитата Сообщение от Thinker Посмотреть сообщение
А во вторых, кто вам сказал, что 7 = 1B. Если цифры не могут быть отрицательными, что предполагалось, то 7 = B.
холиварим. Пусть заданная сс зовется x. тогда
http://www.cyberforum.ru/cgi-bin/latex.cgi?7_{10} = 9_{10} - 2_{10} = 10_{x} + B_{x} = 1B_{x}
ЛеЖиК)
13.01.2012, 16:36  [ТС]
  #68

Не по теме:

diagon, а ты в этом году поступаешь?
мне вот тоже осталось только второе и четвертое задание

greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
13.01.2012, 17:29     Перевод в 9-чную систему счисления #69
Цитата Сообщение от alkagolik Посмотреть сообщение
Вот сложение без перевода на матрице.
Снемаю шляпу.

Цитата Сообщение от Thinker Посмотреть сообщение
Если цифры не могут быть отрицательными, что предполагалось, то 7 = B.
простите не согласен. Это уже обсуждалось.

Добавлено через 6 минут
Цитата Сообщение от accept Посмотреть сообщение
а где цифры со значениями 7 и 8 ?
запиши число 9
задача в теме решена уже три раза.
РАЗ
ДВА
ТРИ
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
14.01.2012, 06:51     Перевод в 9-чную систему счисления #70
Цитата Сообщение от ValeryS Посмотреть сообщение
7 1B 1*9+(-2)
11B переведи в десятичную систему
ValeryS
Модератор
6376 / 4842 / 442
Регистрация: 14.02.2011
Сообщений: 16,047
14.01.2012, 07:18     Перевод в 9-чную систему счисления #71
Цитата Сообщение от accept Посмотреть сообщение
11B переведи в десятичную систему
легко
1*(9*9)+1*9+(-2)=81+9-2=89
чего еще изволите
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
14.01.2012, 07:23     Перевод в 9-чную систему счисления #72
так это ж 17 было
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
14.01.2012, 08:03     Перевод в 9-чную систему счисления #73
Цитата Сообщение от accept Посмотреть сообщение
так это ж 17 было
ПОЛОЖИТЕЛЬНЫЕ

1 1 _____ 10 11
2 2 _____ 20 22
3 3 _____ 30 33
4 4 _____ 40 44
5 5 _____ 50 55
6 6 _____ 60 66
7 1B _____ 70 1AB
8 1A _____ 80 10A
9 10 _____ 90 110
10 11 _____ 100 121
11 12 _____ 110 132
12 13 _____ 120 143
13 14 _____ 130 154
14 15 _____ 140 165
15 16 _____ 150 2B6
16 2B _____ 160 20B
17 2A _____ 170 21A
18 20 _____ 180 220
19 21 _____ 190 231
20 22 _____ 200 242
21 23 _____ 210 253
22 24 _____ 220 264
23 25 _____ 230 3B5
24 26 _____ 240 3A6
25 3B _____ 250 31B
26 3A _____ 260 32A
27 30 _____ 270 330
28 31 _____ 280 341
29 32 _____ 290 352
30 33 _____ 300 363
31 34 _____ 310 4B4
32 35 _____ 320 4A5
33 36 _____ 330 406
34 4B _____ 340 42B
35 4A _____ 350 43A
36 40 _____ 360 440
37 41 _____ 370 451
38 42 _____ 380 462
39 43 _____ 390 5B3
40 44 _____ 400 5A4
41 45 _____ 410 505
42 46 _____ 420 516
43 5B _____ 430 53B
44 5A _____ 440 54A
45 50 _____ 450 550
46 51 _____ 460 561
47 52 _____ 470 6B2
48 53 _____ 480 6A3
49 54 _____ 490 604
50 55 _____ 500 615
51 56 _____ 510 626
52 6B _____ 520 64B
53 6A _____ 530 65A
54 60 _____ 540 660
55 61 _____ 550 1BB1
56 62 _____ 560 1BA2
57 63 _____ 570 1B03
58 64 _____ 580 1B14
59 65 _____ 590 1B25
60 66 _____ 600 1B36
61 1BB _____ 610 1B5B
62 1BA _____ 620 1B6A
63 1B0 _____ 630 1AB0
64 1B1 _____ 640 1AA1
65 1B2 _____ 650 1A02
66 1B3 _____ 660 1A13
67 1B4 _____ 670 1A24
68 1B5 _____ 680 1A35
69 1B6 _____ 690 1A46
70 1AB _____ 700 1A6B
71 1AA _____ 710 10BA
72 1A0 _____ 720 10A0
73 1A1 _____ 730 1001
74 1A2 _____ 740 1012
75 1A3 _____ 750 1023
76 1A4 _____ 760 1034
77 1A5 _____ 770 1045
78 1A6 _____ 780 1056
79 10B _____ 790 11BB
80 10A _____ 800 11AA
81 100 _____ 810 1100
82 101 _____ 820 1111
83 102 _____ 830 1122
84 103 _____ 840 1133
85 104 _____ 850 1144
86 105 _____ 860 1155
87 106 _____ 870 1166
88 11B _____ 880 12AB
89 11A _____ 890 120A
90 110 _____ 900 1210
91 111 _____ 910 1221
92 112 _____ 920 1232
93 113 _____ 930 1243
94 114 _____ 940 1254
95 115 _____ 950 1265
96 116 _____ 960 13B6
97 12B _____ 970 130B
98 12A _____ 980 131A
99 120 _____ 990 1320
100 121 _____ 1000 1331


ОТРИЦАТЕЛЬНЫЕ

-1 A -10 AA
-2 B -20 BB
-3 A6 -30 A56
-4 A5 -40 A45
-5 A4 -50 A34
-6 A3 -60 A23
-7 A2 -70 A12
-8 A1 -80 A01
-9 A0 -90 AA0
-10 AA -100 ABA
-11 AB -110 B6B
-12 B6 -120 B46
-13 B5 -130 B35
-14 B4 -140 B24
-15 B3 -150 B13
-16 B2 -160 B02
-17 B1 -170 BA1
-18 B0 -180 BB0
-19 BA -190 A66A
-20 BB -200 A65B
-21 A66 -210 A636
-22 A65 -220 A625
-23 A64 -230 A614
-24 A63 -240 A603
-25 A62 -250 A6A2
-26 A61 -260 A6B1
-27 A60 -270 A560
-28 A6A -280 A55A
-29 A6B -290 A54B
-30 A56 -300 A526
-31 A55 -310 A515
-32 A54 -320 A504
-33 A53 -330 A5A3
-34 A52 -340 A5B2
-35 A51 -350 A461
-36 A50 -360 A450
-37 A5A -370 A44A
-38 A5B -380 A43B
-39 A46 -390 A416
-40 A45 -400 A405
-41 A44 -410 A4A4
-42 A43 -420 A4B3
-43 A42 -430 A362
-44 A41 -440 A351
-45 A40 -450 A340
-46 A4A -460 A33A
-47 A4B -470 A32B
-48 A36 -480 A306
-49 A35 -490 A3A5
-50 A34 -500 A3B4
-51 A33 -510 A263
-52 A32 -520 A252
-53 A31 -530 A241
-54 A30 -540 A230
-55 A3A -550 A22A
-56 A3B -560 A21B
-57 A26 -570 A2A6
-58 A25 -580 A2B5
-59 A24 -590 A164
-60 A23 -600 A153
-61 A22 -610 A142
-62 A21 -620 A131
-63 A20 -630 A120
-64 A2A -640 A11A
-65 A2B -650 A10B
-66 A16 -660 A1B6
-67 A15 -670 A065
-68 A14 -680 A054
-69 A13 -690 A043
-70 A12 -700 A032
-71 A11 -710 A021
-72 A10 -720 A010
-73 A1A -730 A00A
-74 A1B -740 A0AB
-75 A06 -750 AA66
-76 A05 -760 AA55
-77 A04 -770 AA44
-78 A03 -780 AA33
-79 A02 -790 AA22
-80 A01 -800 AA11
-81 A00 -810 AA00
-82 A0A -820 AAAA
-83 A0B -830 AABB
-84 AA6 -840 AB56
-85 AA5 -850 AB45
-86 AA4 -860 AB34
-87 AA3 -870 AB23
-88 AA2 -880 AB12
-89 AA1 -890 AB01
-90 AA0 -900 ABA0
-91 AAA -910 ABBA
-92 AAB -920 B66B
-93 AB6 -930 B646
-94 AB5 -940 B635
-95 AB4 -950 B624
-96 AB3 -960 B613
-97 AB2 -970 B602
-98 AB1 -980 B6A1
-99 AB0 -990 B6B0
-100 ABA -1000 B56A
ValeryS
Модератор
6376 / 4842 / 442
Регистрация: 14.02.2011
Сообщений: 16,047
14.01.2012, 08:48     Перевод в 9-чную систему счисления #74
Цитата Сообщение от accept Посмотреть сообщение
так это ж 17 было
17 =2A= 2*9+(-1)
Если мы про ту систему что у TC
для перевода
добавь к числу 2 (смешение)
17+2=19
разделить на основу системы счисления(9)
19/2 =2 остаток 1
2 это десятки(правильно сказать девятки) второй разряд
остаток еденицы
из остатка вычитаем 2 (смещение)
1-2=-1 =A
и получаем 2A

Добавлено через 2 минуты
Это для положительных
для отрицательных не придумал еще( ибо в этой системе нет чисел со знаком -)
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
14.01.2012, 08:54     Перевод в 9-чную систему счисления #75
.......
Цитата Сообщение от ValeryS Посмотреть сообщение
разделить на основу системы счисления(9)
19/9 =2 остаток 1
ValeryS
Модератор
6376 / 4842 / 442
Регистрация: 14.02.2011
Сообщений: 16,047
14.01.2012, 15:16     Перевод в 9-чную систему счисления #76
greeezz,
и что тебя улыбнуло ???
greeezz
14.01.2012, 20:45
  #77

Не по теме:

Цитата Сообщение от ValeryS Посмотреть сообщение
greeezz,
и что тебя улыбнуло ???
я просто указал на опечатку.. чтобы в дальнейшем было меньше вопросов что это такое у кого-то еще. а смайл это просто настроение хорошее. так что ровным счетом ничего.

ValeryS
Модератор
6376 / 4842 / 442
Регистрация: 14.02.2011
Сообщений: 16,047
14.01.2012, 21:09     Перевод в 9-чную систему счисления #78
Цитата Сообщение от greeezz Посмотреть сообщение
я просто указал на опечатку..
ну спасибо просто расшифровал бы
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
14.01.2012, 21:43     Перевод в 9-чную систему счисления #79
Цитата Сообщение от greeezz Посмотреть сообщение
я просто указал на опечатку
А разве основание не 9?
Просто вы ее синим цветом выделили, я даже засомневался в правильности своего решения.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2012, 21:46     Перевод в 9-чную систему счисления
Еще ссылки по теме:

Перевод чисел из 10 в 15 систему счисления C++
C++ Перевод чисел из 10-й в 2-ю систему счисления
C++ Перевод строки из 2-ной системы счисления в 8-ную систему счисления

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

Или воспользуйтесь поиском по форуму:
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
14.01.2012, 21:46     Перевод в 9-чную систему счисления #80
diagon, у ValeryS написано
Цитата Сообщение от ValeryS Посмотреть сообщение
19/2 =2 остаток 1
ну я и написал что там 9тка должна быть.
Yandex
Объявления
14.01.2012, 21:46     Перевод в 9-чную систему счисления
Ответ Создать тему
Опции темы

Текущее время: 20:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru