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

Обнулить у числа последний бит

15.06.2019, 09:19. Показов 7596. Ответов 11
Метки нет (Все метки)

Дано целое число A и натуральное число i. Обнулите у числа A его последний бит и выведите результат.

Заранее благодарен!
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.06.2019, 09:19
Ответы с готовыми решениями:

Обнулить n-ный бит
Доброго времени суток, как можно обнулить бит в числе зная его номер по порядку справа (начиная с...

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

Как обнулить три старших бита регистра DH, без изменения остальных бит
Результат надо сохранить в регистре ВН

Обнулить в каждой цифре нечётный бит, вывести получившееся число и сумму его цифр
Битовые операции + pchar ввести 4-е число произвольной длины, обнулить в каждой цифре нечётный...

11
610 / 415 / 151
Регистрация: 11.01.2019
Сообщений: 1,745
15.06.2019, 09:26 2
А зачем дано i ???
0
0 / 0 / 0
Регистрация: 21.05.2016
Сообщений: 22
15.06.2019, 09:35  [ТС] 3
jugu, Честно сказать, не имею представления, думаю, этой частью можно пренебречь.
0
610 / 415 / 151
Регистрация: 11.01.2019
Сообщений: 1,745
15.06.2019, 09:37 4
Ну так надо сделать A & 0xfffffffe, если A - 4 байта.
0
0 / 0 / 0
Регистрация: 21.05.2016
Сообщений: 22
15.06.2019, 09:43  [ТС] 5
jugu, Не совсем понимаю, можете написать код с пояснением, пожалуйста?
0
Диссидент
Эксперт C
26826 / 16735 / 3666
Регистрация: 24.12.2010
Сообщений: 37,464
15.06.2019, 09:46 6
Цитата Сообщение от jugu Посмотреть сообщение
надо сделать A & 0xfffffffe, если A - 4 байта.
Или, чтоб не заморачиваться
C++
1
A = ((A>>1) <<1);
1
1468 / 927 / 280
Регистрация: 25.01.2019
Сообщений: 2,339
15.06.2019, 10:05 7
Для примера ещё можно без битовых операций:

C++
1
2
3
    A -= (A%2);
    //или
    A = (A/2)*2;
Второе, в принципе, эквивалентно
Цитата Сообщение от Байт Посмотреть сообщение
C++
1
A = ((A>>1) <<1);
Но это плохой пример, т.к. если какой-то злой гений в сказочной транзисторной системе будет в первом бите хранить, например, знак - всё будет неправильно.
0
1468 / 927 / 280
Регистрация: 25.01.2019
Сообщений: 2,339
15.06.2019, 10:33 8
Цитата Сообщение от Folian Посмотреть сообщение
C++
1
2
3
A -= (A%2);
* * //или
* * A = (A/2)*2;
Это я всё тут чушь написал, будет работать для натуральных.

Про отрицательные:
-= (A%2) - тут понятно всё(-/+), а с делением у отрицательных дополнение всё сломает.

Так что лучше не выпендриваться и убрать нормально
Миниатюры
Обнулить у числа последний бит  
0
5232 / 2886 / 1208
Регистрация: 07.02.2019
Сообщений: 7,282
15.06.2019, 14:14 9
A = (A & 1) ? A ^ 1 : A
0
4 / 4 / 0
Регистрация: 03.09.2018
Сообщений: 74
15.06.2019, 18:52 10
C++
1
2
int a = 5661; // 00000000000000000001011000011101
a &= ~0x01; // 00000000000000000001011000011100
Лал, чё вы придумываете то ?
0
Don't worry, be happy
17758 / 10526 / 2030
Регистрация: 27.09.2012
Сообщений: 26,502
Записей в блоге: 1
15.06.2019, 19:34 11
А последний бит - это какой? Младший или старший?
А то все младший бит обнуляют.
0
308 / 220 / 74
Регистрация: 23.05.2011
Сообщений: 981
15.06.2019, 20:24 12
Homyako_o,
C++
1
A = A&~decltype(A)(1);
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.06.2019, 20:24
Помогаю со студенческими работами здесь

Обнулить первый и последний нечетные элементы массива
Знаю,что задании легкие,но у меня не получается...( 1. Дан массив G. Обнулить его первый и...

Обнулить последний минимальный элемент в массиве из N элементов
Меняются все,а надо только последний.Что поменять? program olimp; var a : array of...

Дан массив С[0:n-1]. Обнулить его первый минимальный и последний максимальный элементы
Помогите пожалуйста, нужен полный текст программы

из 32 бит числа х2 16 бит
Привет всем. Как разделить 32 битое число с плавающей запятой на 2 целых числа 16 бит?


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

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

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