Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/22: Рейтинг темы: голосов - 22, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 3

Перевод из двоичной системы счисления в восьмеричную

15.11.2013, 22:31. Показов 4281. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Какой код нужно написать,что бы при вводе в textBox1 числа на подобии 1000101001 , программа считала что введено число в двоичной системе и при нажатии button1 , переводила в восьмеричную систему ( С 2ной в 8ую ) , и выводила результат в label1?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.11.2013, 22:31
Ответы с готовыми решениями:

Перевод числа из двоичной системы счисления в восьмеричную
Как перевести из 2-ой СС в 8-ю СС?

Перевод целого десятичного числа в двоичную и восьмеричную системы счисления
Составить программу перевода введенного целого десятичнрго числа в двоичную и восьмеричную системы счисления. Предусмотреть чтобы...

Перевод из двоичной системы счисления в десятичную и наоборот
помогите осуществить перевод из двоичной системы счисления в десятичную и наоборот

13
 Аватар для _LoneR_
90 / 90 / 13
Регистрация: 15.01.2011
Сообщений: 494
16.11.2013, 01:45
Vanish BrB,
C#
1
2
3
4
5
6
7
8
private void button1_Click(object sender, EventArgs e)
        {
            string convert;
            int inputValue;
            inputValue = int.Parse(textBox1.Text);
            convert = Convert.ToString(inputValue, 8);
            label1.Text = convert;
        }
1
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 3
16.11.2013, 17:51  [ТС]
Он считает число в textbox1 как десятичное, а не двоичное , а так работает.
А как сделать,что бы он считал его двоичным? вводимое число
0
75 / 80 / 51
Регистрация: 22.03.2013
Сообщений: 258
16.11.2013, 18:03
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
using System;
using System.Collections.Generic;
 
namespace ConsoleApplication
{
    class Program
    {
        /// <summary>
        /// Переводит число из десятичной в систему счисления <paramref name="system"/>
        /// </summary>
        /// <param name="from">Число для перевода</param>
        /// <param name="system">Система счисления</param>
        public static long FromTenth(long from, int system) {
            if (from == 0)
                return 0;
 
            long result = 0;
            long part = from;
            double digit = 0d;
 
            while (part > 0) {
                result += (long)Math.Pow(10d, digit++) * (part % system);
                part /= system;
            }
 
            return result;
        }
 
        /// <summary>
        /// Перевод числа из системы исчисления <paramref name="system"/> в десятичную
        /// </summary>
        /// <param name="number">Исходное число</param>
        /// <param name="system">Система счисления исходного числа</param>
        public static long ToTenth(long number, int system) {
            if (number == 0)
                return 0;
 
            double digit = 0d;
            long result = 0;
 
            while (number > 0) {
                result += (long)Math.Pow(system, digit++) * (number % 10);
                number /= 10;
            }
 
            return result;
        }
 
        static void Main(string[] args) {
            int a = 21, b = 24, c = 100;
            for (int i = 2; i < 10; i++) {
                Console.WriteLine("{0}-CC: 21 + 24 = {1}", i, 
                    FromTenth(ToTenth(21, i) + ToTenth(24, i), i));
            }
        }
    }
}
Вот код написал модератор tezaurismosis вот тема:ссылка
0
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 3
16.11.2013, 18:41  [ТС]
Это для консольного приложения,А у меня оконное
0
Неадекват
 Аватар для freeba
1501 / 1237 / 248
Регистрация: 02.04.2010
Сообщений: 2,807
16.11.2013, 21:19
Универсальное решение. Из десятичной в любую с основанием меньше 62 и из недесятичной в десятичную.
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication32
{
    class Program
    {
        static List<char> keys = new List<char>();
        static Stack<int> stack = new Stack<int>();
 
        static void Main(string[] args)
        {
            InitList();
 
            Console.WriteLine(DecTo(30, 2));
            Console.WriteLine(ToDec("11110", 2));
 
            Console.ReadKey();
        }
 
        static int ToDec(string value, int baseValue)
        {
            var result = 0;
            var pow = value.Length;
 
            foreach (var item in value)
            {
                var number = keys.IndexOf(item);
                result += (number * (int)Math.Pow(baseValue, --pow));
            }
 
            return result;
        }
 
        static string DecTo(int value, int baseValue)
        {
            if (value < baseValue)
            {
                stack.Push(value);
                return string.Join("", Enumerable.Range(0, stack.Count).Select(x => keys[stack.Pop()]).ToArray());
            }
            else
            {
                var tmp = value % baseValue;
                stack.Push(tmp);
                return DecTo(value / baseValue, baseValue);
            }
        }
 
        static void InitList()
        {
            keys.Add('0');
            keys.Add('1');
            keys.Add('2');
            keys.Add('3');
            keys.Add('4');
            keys.Add('5');
            keys.Add('6');
            keys.Add('7');
            keys.Add('8');
            keys.Add('9');
            keys.Add('A');
            keys.Add('B');
            keys.Add('C');
            keys.Add('D');
            keys.Add('E');
            keys.Add('F');
            keys.Add('G');
            keys.Add('H');
            keys.Add('I');
            keys.Add('J');
            keys.Add('K');
            keys.Add('L');
            keys.Add('M');
            keys.Add('N');
            keys.Add('O');
            keys.Add('P');
            keys.Add('Q');
            keys.Add('R');
            keys.Add('S');
            keys.Add('T');
            keys.Add('U');
            keys.Add('V');
            keys.Add('W');
            keys.Add('X');
            keys.Add('Y');
            keys.Add('Z');
            keys.Add('a');
            keys.Add('b');
            keys.Add('c');
            keys.Add('d');
            keys.Add('e');
            keys.Add('f');
            keys.Add('g');
            keys.Add('h');
            keys.Add('i');
            keys.Add('j');
            keys.Add('k');
            keys.Add('l');
            keys.Add('m');
            keys.Add('n');
            keys.Add('o');
            keys.Add('p');
            keys.Add('q');
            keys.Add('r');
            keys.Add('s');
            keys.Add('t');
            keys.Add('u');
            keys.Add('v');
            keys.Add('w');
            keys.Add('x');
            keys.Add('y');
            keys.Add('z');
        }
    }
}
Добавлено через 6 минут
Чтобы использовать в winForms приложении скопировать все, кроме функции Main и спокойно вызывать DecTo или ToDec.
3
5 / 5 / 2
Регистрация: 13.10.2015
Сообщений: 407
02.05.2017, 12:25
Подскажите, а как в вашей программе можно оперировать с более весомыми числами, например 9004569898
0
Неадекват
 Аватар для freeba
1501 / 1237 / 248
Регистрация: 02.04.2010
Сообщений: 2,807
02.05.2017, 13:40
_Faradey, Заменить int на long
1
5 / 5 / 2
Регистрация: 13.10.2015
Сообщений: 407
02.05.2017, 13:47
Во всем коде? Или где-то конкретно?
И можно ли применить bigInteger?
0
Неадекват
 Аватар для freeba
1501 / 1237 / 248
Регистрация: 02.04.2010
Сообщений: 2,807
02.05.2017, 14:16
_Faradey, Везде кроме стека (при условии если остаток от деления будет int-совместимым). Можно использовать любой тип если он поддерживает операцию деления и получения остатка от деления.
0
5 / 5 / 2
Регистрация: 13.10.2015
Сообщений: 407
02.05.2017, 14:27
Не получается, неудается преобразовать long в int... Может что-то не так делаю?
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication32
{
    class Program
    {
        static List<char> keys = new List<char>();
        static Stack<int> stack = new Stack<int>();
 
        static void Main(string[] args)
        {
            InitList();
 
            Console.WriteLine(DecTo(30, 2));
            Console.WriteLine(ToDec("11110", 2));
 
            Console.ReadKey();
        }
 
        static long ToDec(string value, long baseValue)
        {
            var result = 0;
            var pow = value.Length;
 
            foreach (var item in value)
            {
                var number = keys.IndexOf(item);
                result += (number * (long)Math.Pow(baseValue, --pow));
            }
 
            return result;
        }
 
        static string DecTo(long value, long baseValue)
        {
            if (value < baseValue)
            {
                stack.Push(value);
                return string.Join("", Enumerable.Range(0, stack.Count).Select(x => keys[stack.Pop()]).ToArray());
            }
            else
            {
                var tmp = value % baseValue;
                stack.Push(tmp);
                return DecTo(value / baseValue, baseValue);
            }
        }
//...
0
 Аватар для bidjason
1 / 2 / 3
Регистрация: 24.05.2016
Сообщений: 107
02.05.2017, 15:10
C#
1
2
int n = Convert.ToInt32(textBox1.Text, 2); //-воспринимается как будто ты цифры двоичной системы счисления ввёл
label1.Text==ToString(n, 8); //-перевод из двоичной в восьмеричную
0
5 / 5 / 2
Регистрация: 13.10.2015
Сообщений: 407
02.05.2017, 15:14
Вопрос в другом.
Как оперировать с большими числами, желательно bigInteger
0
Неадекват
 Аватар для freeba
1501 / 1237 / 248
Регистрация: 02.04.2010
Сообщений: 2,807
02.05.2017, 16:22
Цитата Сообщение от _Faradey Посмотреть сообщение
Может что-то не так делаю?
Естественно, остаток от деления приводится к максимальному типу, т.е. long, а ты его в int'овый стек пихаешь. Либо явно результат к инту, либо стек лонговый.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.05.2017, 16:22
Помогаю со студенческими работами здесь

Перевод чисел из двоичной системы счисления в шестнадцатеричную
Добрый вечер форумчане, помогите пожалуйсто написать программу на С #, задача звучит так &quot; построить программу перевода чисел из...

Перевод числа из двоичной системы счисления в 16-ричную
Добрый день! Как перевести числа из двоичной системы счисления в 16-ричную, не используя Convert.ToString? Спасибо большое

Перевод из двоичной системы счисления в десятичную или наоборот с массивом
class Program { static void Main(string args) { MyClass write = new MyClass(); ...

Перевод чисел из двоичной в восьмеричную СС
Составить программу для перевода чисел из двоичной системы счисления в восьмеричную на С#. Ребят, выручайте, пожалуйста!!! И если можно,...

Проверить правильность ввода числа в двоичной системе счисления и перевести это число из двоичной системы в десятичную
Здравствуйте! Подскажите, пожалуйста, как исправить код, чтобы выполнялось задание. Делала на основе паскаля, который нашла здесь, но...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru