Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2012, 23:09   #1
Shurochka
Новичок
Джуниор
 
Регистрация: 30.09.2012
Сообщений: 2
По умолчанию C++ программирование

Добрый вечер.
Не понимаю по какому принципу решать второю часть задачи.
Собственно вот:
тема - Поразрядные операции.
Задание:
Даны два int-числа: N1 = ABCD и N2 = EFGH, где AB…GH – 16 – ричные цифры. Образовать long-число, используя только поразрядные операции: ACCDGHEF. В подчёркнутой группе цифр ССDG определить количество непересекающихся кодовых комбинаций 011.
Собственно вот, что я только сделала
Код:
#include <vcl.h>
#include <stdio.h>
#include <conio.h>

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused

long num(int n1, int n2);
int main()
{
        int n1, n2;
        long n;
        printf("Input two numbers n1 and n2: \t");
        scanf("%x%x", &n1, &n2);
        n = num(n1, n2);
        printf("n = %lx\n", n);
        getch();
        return 0;
}
long num(int n1, int n2)
{
        long n=0x0, A, C, D, GH, EF;
        A = (n1 >> 12) & 0xF;
        D = (n1 & 0xF);
        C = (n1 >> 4) & 0xF;
        GH = n2 & 0xFF;
        EF = (n2 >> 8) & 0xFF;
        n = n | (A << 4*7);
        n = n | (C << 4*6);
        n = n | (C << 4*5);
        n = n | (D << 4*4);
        n = n | (GH << 4*2);
        n = n | EF;
        return n;
}
Помогите решить пожалуйста! И если можно, с пояснениями.
Заранее благодарна.

Последний раз редактировалось Stilet; 13.11.2012 в 00:58.
Shurochka вне форума Ответить с цитированием
Старый 12.11.2012, 23:59   #2
Mr.Fox
 
Аватар для Mr.Fox
 
Регистрация: 11.11.2012
Сообщений: 6
По умолчанию

Собственно вот:
Код:
#include <vcl.h>
#include <stdio.h>
#include <conio.h>

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused

long num(int n1, int n2);
int main()
{
int n1, n2;
long n;
printf("Input two numbers n1 and n2: \t");
scanf("%x%x", &n1, &n2);
n = num(n1, n2);
printf("n = %lx\n", n);
getch();
return 0;
}
long num(int n1, int n2)
{
long n=0x0, A, C, D, GH, EF;
A = (n1 >> 12) & 0xF;
D = (n1 & 0xF);
C = (n1 >> 4) & 0xF;
GH = n2 & 0xFF;
EF = (n2 >> 8) & 0xFF;
n = n | (A << 4*7);
n = n | (C << 4*6);
n = n | (C << 4*5);
n = n | (D << 4*4);
n = n | (GH << 4*2);
n = n | EF;
return n;
}
Mr.Fox вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование 1С ProgramMan Помощь студентам 0 25.09.2011 16:27
Программирование или web-программирование? Дмитрий Батогов Помощь студентам 3 23.06.2011 14:14
Программирование на C++ jamik2012 Фриланс 5 14.12.2010 22:42
программирование на с# Настя100 Помощь студентам 5 10.01.2010 13:32
программирование на си фамил Общие вопросы C/C++ 3 31.05.2008 20:03