0 / 0 / 0
Регистрация: 17.05.2016
Сообщений: 5
1

Составить функцию inv (x, q, m), что возвращает значение x с инвертированными m битами, начиная с позиции q

19.05.2016, 13:50. Показов 2030. Ответов 3
Метки нет (Все метки)

Составить функцию inv ( x , q , m ) , что возвращает значение x с инвертированными m битами, начиная с позиции q (другие биты не изменяются ) .
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.05.2016, 13:50
Ответы с готовыми решениями:

Написать функцию, которая возвращает число, полученное из целого числа x, в котором единицы установлены в n разрядов, начиная с позиции p (крайний пра
Написать функцию, которая возвращает число, полученное из целого числа x, в котором единицы...

Разработать функцию, что возвращает абсолютное значение доли от деления двух аргументов
Разработайте функцию типа float, что возвращает абсолютное значение доли от деления первого ...

Реализовать функцию - Insert(s, s1, n). Вставка в строку s подстроки s1, начиная с позиции n
Функция - Insert(s,s1,n). Вставка в строку s подстроки s1, начиная с позиции n (аналогичная...

Установка l символов строке s, начиная с позиции n, в значение t
Функція StrSet(s,n,l,t) Призначення: установлення l символів рядку s, починаючи с позиції n, в...

3
317 / 268 / 61
Регистрация: 12.10.2011
Сообщений: 434
19.05.2016, 14:12 2
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
#include <stdio.h>
 
void inv(int* x, int q, int m)
{
    *x ^= (1 << q) - 1;
    *x ^= (1 << (q + m)) - 1;
}
 
void print_bin(int num)
{
    if (num > 1)
        print_bin(num >> 1);
    printf("%d", num & 1);
}
int main(void)
{
    int a = 4353, q = 3, m = 6;
    printf("Before:\n");
    print_bin(a);
    inv(&a, q, m);
    printf("\nAfter:\n");
    print_bin(a);
    return 0;
}
0
0 / 0 / 0
Регистрация: 17.05.2016
Сообщений: 5
19.05.2016, 14:53  [ТС] 3
golatin, спасибо тебе большое

Добавлено через 36 минут
golatin, данные вводятся из файла и выводятся в файл и на экран.Как это к этому коду реализовать?
0
317 / 268 / 61
Регистрация: 12.10.2011
Сообщений: 434
19.05.2016, 15:22 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Чтение/запись в файл гугли fprintf, fscanf.

test.dat - в файле три числа, через пробел(примерно так: 45 5 6).Запись в файл - напишешь сама.
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
#include <io.h>
#include <stdlib.h>
#include <stdio.h>
 
void inv(int* x, int q, int m)
{
    *x ^= (1 << q) - 1;
    *x ^= (1 << (q + m)) - 1;
}
 
void print_bin(int num)
{
    if (num > 1)
        print_bin(num >> 1);
    printf("%d", num & 1);
}
 
int main(void)
{
    FILE* fp;
    int a, q, m;
    if ((fp = fopen("d://test.dat", "r")) == NULL) {
        printf("Error: couldn't open file.\n");
        exit(1);
    }
    fscanf(fp, "%d %d %d", &a, &q, &m);
    fprintf(stdout, "Data in file: %d %d %d\n", a, q, m);
    fclose(fp);
 
    printf("Before:\n", a, q, m);
    print_bin(a);
    inv(&a, q, m);
    printf("\nAfter:\n");
    print_bin(a);
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.05.2016, 15:22
Помогаю со студенческими работами здесь

Установка L символов строки s в значение t, начиная с позиции n
Установка L символов строки s в значение t, начиная с позиции n. Функция StrSet (s, n, L, t). Не...

Разработайте функцию, что возвращает абсолютное значение доли от деления первого аргумента на второй
Разработайте функцию типа float, что возвращает абсолютное значение доли от деления первого ...

Составить функцию, которая получает введенные значения в качестве параметров и возвращает значение площади полной поверхности данного тела
Пользователь вводит значения высоты правильной призмы и стороны равностороннего треугольника,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru