Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.72
kiborg_18
4 / 4 / 0
Регистрация: 21.02.2011
Сообщений: 61
#1

Обнуление битов - C++

08.04.2011, 17:18. Просмотров 3427. Ответов 3
Метки нет (Все метки)

Дано целые числа N и k. Обнулите у числа N его последние k бит и выведите результат. Рекомендуется сделать эту задачу без использования циклов.
Технические условия
Входные данные
Во входном файле даны числа N (0 ≤ N ≤ 2^31 - 1) и k (0 ≤ k ≤ 30).
Выходные данные
В выходной файл выведите число, получившееся после обнуления k бит.

Как написать, 2 в 31 в unsigned не умещается(((
1
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2011, 17:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обнуление битов (C++):

Обнуление битов - C++
Вечер добрый, народ. Очень нужна ваша помощь. Есть задача: Написать функцию, указанную в задании, используя только операции над...

Перевод таблицы битов и времени в последовательность битов arduino - C++
доброго времени суток в приведенной ниже таблице левый столбец - биты, правый - их длительность. известно, что единичный сигнал длится от...

Операции с побитовыми операторами (число 8 битов и число 9 битов) - C++
Доброго времени суток всем ! Прошу ответа на несложный вопрос (...по крайней мере мне так кажется...) Есть функция: ...

Обнуление буфера. - C++
Доброе время суток! Есть например буфер "b". Надо его перед использованием в цикле обнулять. Как это сделать? Вот часть кода,...

обнуление переменной - C++
Добрый день Господа !!! как обнулить переменную типа string Добавлено через 8 минут нашёл

Обнуление переменной - C++
int _tmain(int argc, _TCHAR* argv) { setlocale(LC_ALL, "rus"); double A; int ik, in, h; cout << setw(20) << "Задание 1" <<...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Saiberg
19 / 19 / 1
Регистрация: 23.09.2010
Сообщений: 193
08.04.2011, 17:21 #2
как раз таки в unsigned int должны умещаться. там 32 бита
signed int = 31 бит
1
easybudda
Модератор
Эксперт CЭксперт С++
9629 / 5577 / 947
Регистрация: 25.07.2009
Сообщений: 10,712
08.04.2011, 18:04 #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
26
27
28
#include <stdio.h>
#include <math.h>
#include <limits.h>
    
#define INT_BIT CHAR_BIT * sizeof(int)
    
// вывод чисел в двоичном виде для наглядности
char * bin_str(unsigned n){
    static char buf[INT_BIT + 1] = { 0 };
    int i;
    for ( i = 0; i < INT_BIT; ++i )
        buf[i] = ( n & 1 << ( INT_BIT - i - 1 ) ) ? '1' : '0';
    return buf;
}
 
int main(void){
    unsigned n, k;
    
    while ( printf("Number: ") && scanf("%i", &n) == 1 ){
        printf("Number of bits to become zero: ");
        scanf("%i", &k);
        printf("Before: %s (%#x)\n", bin_str(n), n);
        n &= ~((int)pow(2.0, (double)k) - 1);
        printf("After:  %s (%#x)\n", bin_str(n), n);
    }
    
    return 0;
}
Код
$ ./zeroing_bits
Number: 255
Number of bits to become zero: 4
Before: 00000000000000000000000011111111 (0xff)
After:  00000000000000000000000011110000 (0xf0)
Number: -1
Number of bits to become zero: 3
Before: 11111111111111111111111111111111 (0xffffffff)
After:  11111111111111111111111111111000 (0xfffffff8)
Number:
2
kiborg_18
4 / 4 / 0
Регистрация: 21.02.2011
Сообщений: 61
08.04.2011, 22:33  [ТС] #4
Большое спасибо)
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.04.2011, 22:33
Привет! Вот еще темы с ответами:

Обнуление переменной - C++
Здрасте. struct sItems { int ITEM_STRONG_LIFEPOWER; int ITEM_EXCELLENT_GENES; int ITEM_BOMB_SPECIALIST; int...

Обнуление матрицы в структуре - C++
Здравствуйте такой вопрос. Как обнулить двумерный массив который входитв структуру? struct player { int ships; int hits }; ...

Обнуление массива структур - C++
Создаю массив Elem * Head = new Elem; for (int i=0;i&lt;n;i++) { *(Head+i)= NULL; } cin &gt;&gt; numer; Пусть n будет 5 . то...

Самопроизвольное обнуление константы - C++
Добрый день! ... const std::clock_t start = std::clock(); int res = insertionSort(p,N); const double end =...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.04.2011, 22:33
Ответ Создать тему
Опции темы

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