Ketty K Ketty Регистрация 2 Апр 2013 Сообщения 74 Репутация 0 Спасибо 0 Монет 0 8 Фев 2017 #1 Как инвертировать число? Есть число 3 в десятичной системе (0011) Должно получиться 1100, т. е. 12. c++
Как инвертировать число? Есть число 3 в десятичной системе (0011) Должно получиться 1100, т. е. 12. c++
АлексейС А АлексейС Регистрация 4 Апр 2013 Сообщения 68 Репутация 0 Спасибо 0 Монет 0 8 Фев 2017 #2 Можно побитовое Не использовать - оператор ~ int x = ~y; Позитивный голос 0
vfdsvdcvd V vfdsvdcvd Регистрация 5 Апр 2013 Сообщения 70 Репутация 6 Спасибо 1 Монет 0 8 Фев 2017 #3 Если речь об одном байте, то вычитаешь из 15 (1111) своё число 3 (0011) и получаешь 12 (1100) Позитивный голос 0
Fergus`509 F Fergus`509 Регистрация 15 Ноя 2013 Сообщения 90 Репутация 0 Спасибо 0 Монет 0 8 Фев 2017 #4 Инверсия - это оператор ~. Если надо обнулить старшие разряды, можно использовать маску. Например: ~3 & 0xF Результат 12 Позитивный голос 0
Инверсия - это оператор ~. Если надо обнулить старшие разряды, можно использовать маску. Например: ~3 & 0xF Результат 12
діма Д діма Регистрация 7 Дек 2012 Сообщения 82 Репутация 0 Спасибо 0 Монет 0 8 Фев 2017 #5 x~=x Позитивный голос 0
Whispering Whispering Регистрация 13 Мар 2017 Сообщения 314 Репутация 70 Спасибо 11 Монет 0 13 Мар 2017 #6 Re: Как инвертировать число? Есть число 3 в десятичной системе (0011) Должно получить Простой способ описан выше, но можно инвертировать не только значение, но и строку [THIDE="0"]#include <iostream> #include <cstring> #define size 50 int main() { char str [size]; char str2[size]; std::cin.get(str,size); for(unsigned int i=0;i<strlen(str);i++) { str2 = str[strlen(str)-i-1]; std::cout<<str2; } return 0; }[/THIDE] Позитивный голос 0
Re: Как инвертировать число? Есть число 3 в десятичной системе (0011) Должно получить Простой способ описан выше, но можно инвертировать не только значение, но и строку [THIDE="0"]#include <iostream> #include <cstring> #define size 50 int main() { char str [size]; char str2[size]; std::cin.get(str,size); for(unsigned int i=0;i<strlen(str);i++) { str2 = str[strlen(str)-i-1]; std::cout<<str2; } return 0; }[/THIDE]