Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 10.07.2014
Сообщений: 20
1

Вывод двоичного числа с добавлением недостающих нулей

07.10.2014, 12:23. Показов 3745. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Собственно беру 2 первых символа(hex) из textbox1 и перевожу в двоичное число:
C#
1
2
3
4
                String str = textBox1.Text;
                string var1 = str[0].ToString() + str[1].ToString();
                int i = Convert.ToInt16(var1, 16);
                textBox2.Text = Convert.ToString(i, 2);
Подскажите, как можно сделать, чтобы добавлялись недостающие нули, до 8-и симвалов без накручивания через if.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.10.2014, 12:23
Ответы с готовыми решениями:

Перевод из двоичного числа в десятичное без ведущих нулей
https://www.cyberforum.ru/csharp-beginners/thread445185.html - не работает никак совсем. Прощу...

Вывод двоичного числа и сброска битов
Примерно такого типа задача Написать программу на языке C++, читающую со стандартного ввода 4...

Вывод двоичного представления целого числа
написать код консольного приложения,реализующий ввод с клавиатуры в бесконечном цикле целого...

Вывод двоичного представления дсятичного числа.
Вот код. #include <stdio.h> #include <math.h> #include <stdlib.h> /* Функция для вывода...

13
79 / 79 / 37
Регистрация: 11.09.2014
Сообщений: 579
07.10.2014, 13:00 2
к числу никак не прибавить. Если только при выводе строкой. Тогда просто сравнивай длину i.Tostring().Length < 8

Добавлено через 2 минуты
C#
1
2
3
4
5
6
7
8
9
if(i.Tostring().Length < 8)
{
    str =i.Tostring();
    for(int i = i.Tostring().Length; i < 8; i++)
        {
              str+="0";
        }
}
//вывод
1
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
07.10.2014, 13:01 3
Лучший ответ Сообщение было отмечено Otherme как решение

Решение

типа этого чтоли?
C#
1
2
3
if (textBox2.Text.Lenght != 8) 
    for (int i = 0; i < 8 - textBox2.Text.Lenght; i++)
         textBox2.Text = "0" + textBox2.Text;
1
79 / 79 / 37
Регистрация: 11.09.2014
Сообщений: 579
07.10.2014, 13:09 4
если в началае нужно, то в самый раз. И
Цитата Сообщение от meksik Посмотреть сообщение
if (textBox2.Text.Lenght != 8)
поставь <
0
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
07.10.2014, 13:10 5
Baky,
C#
1
if (textBox2.Text.Lenght != 8)
или
C#
1
if (textBox2.Text.Lenght < 8)
тут не играет роли
0
79 / 79 / 37
Регистрация: 11.09.2014
Сообщений: 579
07.10.2014, 13:13 6
не сказал бы. Если длинна строки больше 8?! То for печально отработает

Добавлено через 37 секунд
Цитата Сообщение от meksik Посмотреть сообщение
C#
1
2
3
if (textBox2.Text.Lenght != 8) 
   for (int i = 0; i < 8 - textBox2.Text.Lenght; i++)
     textBox2.Text = "0" + textBox2.Text;
ты сам это указал
0
1144 / 873 / 506
Регистрация: 09.04.2014
Сообщений: 2,056
07.10.2014, 13:14 7
Цитата Сообщение от Otherme Посмотреть сообщение
Подскажите, как можно сделать, чтобы добавлялись недостающие нули, до 8-и симвалов
C#
1
2
string s="11";
s = s.PadLeft(8, '0');
0
79 / 79 / 37
Регистрация: 11.09.2014
Сообщений: 579
07.10.2014, 13:14 8
если длинна строки 10 то получим i < -2 и получается бесконечный цикл
0
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
07.10.2014, 13:16 9
Baky, а больше и не должно быть о_О

Добавлено через 1 минуту
Цитата Сообщение от Baky Посмотреть сообщение
если длинна строки 10 то получим i < -2 и получается бесконечный цикл
ну я просто мысль подал, а там уж ТС решает по ситуации какое условие там задать)
0
0 / 0 / 0
Регистрация: 10.07.2014
Сообщений: 20
07.10.2014, 13:17  [ТС] 10
Спасибо всем за подсказки, сделал так:
C#
1
2
3
4
5
6
7
8
9
                str = textBox1.Text;
                s1 = str[0];
                s2 = str[1];
                string var1 = s1.ToString() + s2.ToString();
                int i = Convert.ToInt16(var1, 16);
                textBox2.Text = Convert.ToString(i, 2);
                while (textBox2.Text.Length != 8)
                    for (i = 0; i < 8 - textBox2.Text.Length; i++)
                        textBox2.Text = "0" + textBox2.Text;
теперь нормально работает. Сделал через while, т.к. когда получается например 10001, то при выполнении if, становиться 010001 и перестает больше добавлять.
0
79 / 79 / 37
Регистрация: 11.09.2014
Сообщений: 579
07.10.2014, 13:17 11
согласен. Там уже кинули норм вариант
0
0 / 0 / 0
Регистрация: 10.07.2014
Сообщений: 20
07.10.2014, 13:21  [ТС] 12
Цитата Сообщение от Baky Посмотреть сообщение
Если длинна строки больше 8?!
Длинна строки не может превышать 8, т.к. максимальное значение FF или же в двоичном виде 11111111. так что в принципе без разници, поставить != 8 или < 8.
0
79 / 79 / 37
Регистрация: 11.09.2014
Сообщений: 579
07.10.2014, 13:25 13
тогда ок
0
meksik
07.10.2014, 13:27     Вывод двоичного числа с добавлением недостающих нулей
  #14

Не по теме:

Baky, вот видишь :p

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.10.2014, 13:27

Преобразование чисел в текст с добавлением нулей
Есть числа: int x1 = 7; int x2 = 12; Нужно для этих переменных получить: string text1 =...

Преобразование двоичного числа в десятичное: добавить ввод и вывод из файла
Вот задача на преобразование двоичного числа в десятичное. Помогите исправить, чтоб исходные данные...

Вывод значений повышенной точности. Преобразование многобитного двоичного числа в десятичное
Здравствуйте! Хотелось бы узнать как осуществляется вывод значений повышенной точности и...

Как превратить дату в varchar с добавлением ведущих нулей?
В stored procedure я получаю дату из таблицы. Например 1 Mar 2006. Или 01/03/2006 и т.п. Мне нужно...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru