Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Nixonix
0 / 0 / 0
Регистрация: 03.05.2011
Сообщений: 6
#1

Задана 32-х битная переменная и набор 32-битных флагов. Если бит в заданной переменной равен единице то считать,что соответствующий флаг установлен... - C#

10.05.2011, 23:43. Просмотров 826. Ответов 2
Метки нет (Все метки)

Задана 32-х битная переменная и набор 32-битных флагов. Если бит в заданной переменной равен единице то считать,что соответствующий флаг установлен.Cо значением флага ассоциирована строка - порядковое число на английском языкею Напишите програму кторая выводит на консоль соотвестуюшую строку, если в переменно установлен соотвествующий флаг. Подумайте о пути унификации программы.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2011, 23:43
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Задана 32-х битная переменная и набор 32-битных флагов. Если бит в заданной переменной равен единице то считать,что соответствующий флаг установлен... (C#):

Дано f. Найти площадь сектора, радиус которого равен 13.75, а соответствующий центральный угол равен f . Считать, что f - градусная мера угла.
Дано f. Найти площадь сектора, радиус которого равен 13.75, а соответствующий...

Проверить равен ли 4-й бит байта [022A] единице. Если – да, то – программно сделать очистку памяти в адресах 0200-02DE, иначе – заполнить область памя
Проверить равен ли 4-й бит байта единице. Если – да, то – программно сделать...

Если соответствующий элемент в исходном массиве равен заданному, то в новом массиве соответствующий элемент -1, в противном случае - 0
2. Из одномерного числового массива размерности n создать новый одномерный...

Доказать, что НОД равен единице
Как доказать, что НОД(n, n+1) = 1, где n - целое число?

Заполнить массив по правилу: первый элемент массива равен единице, второй равен N, третий – двум, четвертый равен N – 1 и так далее.
Задали написать программу, которая заполнит массив A из N элементов...

Вычислить значение С. Вывести на экран 1 если шестой бит числа С установлен и 0 в противном случае
Пользователь вводит два числа А и В в шестнадцатеричном ви-де. Программа...

2
NickoTin
Почетный модератор
Эксперт .NET
8435 / 3557 / 402
Регистрация: 14.06.2010
Сообщений: 4,512
Записей в блоге: 9
11.05.2011, 01:58 #2
Лучший ответ Сообщение было отмечено Nixonix как решение

Решение

Цитата Сообщение от Nixonix Посмотреть сообщение
Задана 32-х битная переменная и набор 32-битных флагов. Если бит в заданной переменной равен единице то считать,что соответствующий флаг установлен.Cо значением флага ассоциирована строка - порядковое число на английском языкею Напишите програму кторая выводит на консоль соотвестуюшую строку, если в переменно установлен соотвествующий флаг.
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
using System;
 
namespace ConsoleApplication16
{
    class Program
    {
        static int value;
 
        static string[] flags = {
            "Zero", "One", "Two", "Three",
            "Four", "Five", "Six", "Seven",
            // и т.д. 32 значения
                                };
 
        static void Main ( string[] args ) {
            Console.WriteLine("Введите значение:");
            while(true) {
                if (int.TryParse(Console.ReadLine(), out value))
                    break;
                
                Console.Clear();
                Console.WriteLine("Неверное значение! Повторите ввод:");
            }
 
            string read = null;
            int    flag = 0;
 
            Console.WriteLine("Введите номер флага, от 0 до 31 включительно\r\n" + 
                "или end для завершения работы приложения:");
            while(!string.Equals(read = Console.ReadLine(), "end",
                StringComparison.CurrentCultureIgnoreCase)) {
 
                if (!int.TryParse(read, out flag) || (flag > 31 || flag < 0)) {
                    Console.Clear();
                    Console.WriteLine("Неверное значение! Повторите ввод:");
                    continue;
                }
 
                if (IsFlagSet(flag))
                    Console.WriteLine("Флаг установлен: {0}.\r\nВвод:", flags[flag]);
                else
                    Console.WriteLine("Флаг не установлен.\r\nВвод:");
            }
        }
 
        static bool IsFlagSet(int bitPosition) {
            if (bitPosition > 31)
                throw new IndexOutOfRangeException("Значение bitPosition должно быть от 0 до 31!");
 
            return (value | (1 << bitPosition)) == value;
        }
    }
}
Допишите только все цифры на английском до 31 включительно.
Цитата Сообщение от Nixonix Посмотреть сообщение
Подумайте о пути унификации программы.
Вот это не понял...
0
Winsor
328 / 264 / 18
Регистрация: 19.01.2011
Сообщений: 597
11.05.2011, 10:18 #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
class Program
{
    [Flags]
    enum Numbers
    {
        Zero = 0,
        One = 1,
        Two = 2,
        Three = 4,
        Four = 8,
        Five = 16,
        Six = 32,
        Seven = 64,
 
        //далее до 32-го названия, т.к. это флаги - значение енума - предыдущее значение*2
        //если кто не понял почему - смотрим двоичное отображение.
    }
 
    static void Main(string[] args)
    {
        int value = 127; //переменная c флагами
        Console.WriteLine("{0,3} - {1}", value, ((Numbers)value).ToString());//Вывод флагов в переменной
        Console.ReadLine();
    }
}
Вывод программы -
127 - One, Two, Three, Four, Five, Six, Seven
100 - Three, Six, Seven
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2011, 10:18
Привет! Вот еще темы с решениями:

Как увеличить скорость движения объекта по таймеру, если его интервал уже и так равен единице
Есть объект он передвигается по форм, передвижение осуществлено по таймеру, в...

Сформировать массив, в котором элемент равен единице, если количество отрицательных элементов строки матрицы А больше, чем в строке
Дорогие, очень прошу помощи... начали учить Java,с середины февраля. Задали...

Не выполняется программа, если переменная задана русскими буквами
И снова здравствуйте. Возник еще вопрос. Для изучения RUby юзаю связку...

64-х битная система думает, что она 32-х битная
У меня 64-х битная винда с недавних пор перестала запускать х64 программы


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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