Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Перевод в 2 СС и в 10 СС

Перевод в 2 СС и в 10 СС
Я
   JuixyJes
 
27.06.19 - 23:50
Я представляю, как мне считать перевод из одной в другую системы счисления, но как мне написать это, не знаю, помогите пожалуйста, добрые люди
 
 
   palsergeich
 
1 - 27.06.19 - 23:53
простой пример
4 в 2чной = 100
как из 100 получить 8 в 10чной:
2(2) * 1 + 2(1) * 0 + 2(0) * 0
5 в 2иичойй = 101
2(2)*1 + 2(1)* 0 + 2(0) * 1

в скобках - степень
   lodger
 
2 - 27.06.19 - 23:53
(0) берешь и пишешь, не?
покури что такое рекурсия, потом пример рекурсивной функции.
потом дели на 2 пока в остатке не будет 0 или 1.

то же самое наоборот.

готово.
   palsergeich
 
3 - 27.06.19 - 23:54
каждый разряд числа - увеличивает степень системы счисления на 1
   palsergeich
 
4 - 27.06.19 - 23:54
то же 111 в 10чной можно представить как
1*10(2) + 1*10(1) + 1*10(0)
   palsergeich
 
5 - 27.06.19 - 23:56
(1) как из 100 получить 4 в 10чной
Опечатался
   JuixyJes
 
6 - 27.06.19 - 23:56
Сообщить(b%2);
    //Число = "" ;

    Пока  ((b/2)>1) или ((b/2)>0) Цикл
        b = b/2;
        Сообщить(b%2);
    КонецЦикла;
   JuixyJes
 
7 - 27.06.19 - 23:57
Вот так
при числе 6 выдает 0101
а при таком расположении должно выдавать 011
   JuixyJes
 
8 - 27.06.19 - 23:57
Просто я криворукая, а так почти так как надо работает
   palsergeich
 
9 - 27.06.19 - 23:58
6 в двоичной это 110
   JuixyJes
 
10 - 27.06.19 - 23:59
(9) Да, я знаю, но пока что так
 
 Рекламное место пустует
   palsergeich
 
11 - 28.06.19 - 00:00
(8) У тебя эшибка в том, что ты не переношишь разряд на уровень выше
   palsergeich
 
12 - 28.06.19 - 00:00
0101 - на самом деле это 001 + 01, а не 0001 + 01
   palsergeich
 
13 - 28.06.19 - 00:01
ща напишу
   JuixyJes
 
14 - 28.06.19 - 00:02
Вы бы подсказали что то дельное, в 12 ночи мой мозг - каша
   JuixyJes
 
15 - 28.06.19 - 00:02
(12) но задачку решить хочется, ведь интересно
   palsergeich
 
16 - 28.06.19 - 00:02
(14) Ну так иди спать, а не перекладывай свои проблемы на меня, я сказал куда копать
   palsergeich
 
17 - 28.06.19 - 00:03
Ошибка в непереносе разряда, отсутствует сдвиг
   palsergeich
 
18 - 28.06.19 - 00:16
https://yadi.sk/d/4ddQJJ_cbWxoBQ
Решение в лоб
   JuixyJes
 
19 - 28.06.19 - 00:18
как перевернуть значение задом наперед?, тупой вопрос, но все же
   palsergeich
 
20 - 28.06.19 - 00:19
(19) Глянь мою обработину
   palsergeich
 
21 - 28.06.19 - 00:23
Конкретно твоя ошибка в том, то ты делаешь b = b/2, а надо b = (b-b%2)/2
   palsergeich
 
22 - 28.06.19 - 00:24
(21) + подшаманить цикл
   Garykom
 
23 - 28.06.19 - 00:25
   palsergeich
 
24 - 28.06.19 - 00:26
(23) Фуфу быть таким.
Для мозга полезно вывести алгоритмическую задачу самому.
   Garykom
 
25 - 28.06.19 - 00:27
(24) Я просто отдыхаю от попыток С/С++ конвертация из char* UTF-8 в wchar_t* UTF-16LE

Уже ICU подключил осталось заставить работать
   ДенисЧ
 
26 - 28.06.19 - 05:11
А может того? Замуж? Детей нарожать... Штук пять...
   Сияющий в темноте
 
27 - 28.06.19 - 08:51
Число это переменная в памяти.
когда мы читаем строку цифр и пишем в переменную,то мы умножаем результат на основание системы счисления и добавляем значение цифры и повторяем это слева направо для каждой цифры
когда мы выводим число,то мы берем остаток от деления результата на основание системы и получаем цифру,а частное переносим в результат и так идем справа налево пока результат не станет равным нолю.
   Garykom
 
28 - 28.06.19 - 10:53
(26) До этого пока наука не дошла чтобы смог


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует