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

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

Войти
Регистрация
Восстановить пароль
 
juli.ya92
2 / 2 / 0
Регистрация: 25.09.2010
Сообщений: 82
#1

С операциями сдвига из 123456 получить 102030405060 - C++

28.09.2010, 22:07. Просмотров 532. Ответов 9
Метки нет (Все метки)

Из целого числа получить новое путем вставки после каждой цифры 0 (231457 -> 2030405070).
Всё это с помощью опеаций сдвига и поразрядных операций (d=0x7 и др)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2010, 22:07     С операциями сдвига из 123456 получить 102030405060
Посмотрите здесь:

Не пользуясь никакими арифметическими операциями, кроме умножения, получить: a4, a12 и a28 за шесть операций - C++
Помогите решить в имберкадеро С++ , И если не трудно распишите каждую строчку что вы сделали 2. Дано действительное число a. Не...

Не пользуясь никакими другими арифметическими операциями, кроме умножения, получить А в 21 степени, за шесть операций. - C++
подскажите пожалуйста как написать на С++ задачу. Дано действительное число А. Не пользуясь никакими другими арифметическими...

Дано действительное число а, не пользуясь ни какими другими арифметическими операциями, кроме умножения получить а^5 и а^13 за 5 операция - C++
1 )Дано действительное число а, не пользуясь ни какими другими арифметическими операциями, кроме умножения получить а^5 и а^13 за 5 операция

Ввести целое число (например 123456), а вывести в обратном порядке - C++
С помощью такого стека #ifndef LINEARSTACK #define LINEARSTACK template<class T> class LinearStack { public: ...

Проблема с битовыми операциями - C++
Где-то баг...Вроде все правильно, но выводятся одни нули. Перепроверил уже раз 5. В чем ошибка? Вот задание: Составить прогу, которая...

Работа с битовыми операциями - C++
Дано целое число без знака. Реализовать алгоритм замены каждого четного бита на 0

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
28.09.2010, 22:08     С операциями сдвига из 123456 получить 102030405060 #2
Ну и в чём проблема ?
juli.ya92
2 / 2 / 0
Регистрация: 25.09.2010
Сообщений: 82
28.09.2010, 22:09  [ТС]     С операциями сдвига из 123456 получить 102030405060 #3
Asics^, Ну не пойму как оно сдвигает? допустим число 123 <<3 это как пишет что это 3 а почему? не пойму
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
28.09.2010, 22:15     С операциями сдвига из 123456 получить 102030405060 #4
Возмите учебник и почитайте про ети сдвиги,уверен поможет.
juli.ya92
2 / 2 / 0
Регистрация: 25.09.2010
Сообщений: 82
28.09.2010, 22:16  [ТС]     С операциями сдвига из 123456 получить 102030405060 #5
Asics^, спасибо очень помогли до этого я и сама как нибудь додумалась.
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
28.09.2010, 22:22     С операциями сдвига из 123456 получить 102030405060 #6
Всегда пожалуйста
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
28.09.2010, 22:34     С операциями сдвига из 123456 получить 102030405060 #7
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <stdint.h>
 
uint64_t insert_zeros(uint64_t num){
    uint64_t inverse, ret;
    for ( inverse = 0; num; num /= 10, inverse *= 10 )
        inverse += num % 10;
    for ( ret = 0; inverse; inverse /= 10, ret *= 100 )
        ret += inverse % 10;
    return ret / 10;
}
 
int main(void){
    uint64_t num;
    while ( printf("Number: ") && scanf("%llu", &num) && num )
        printf("With zeros: %llu\n", insert_zeros(num));
    return 0;
}
TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
29.09.2010, 00:08     С операциями сдвига из 123456 получить 102030405060 #8
juli.ya92 с тебя причитается
Если что не понятно - спрашивай, попробую разжевать
Вобщем 12345 превращается в 102030405

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
 
int main()
{
    unsigned int n = 12345;
    cout << "Before: " << n << endl;
    n = (n & 0x1001);
    n = (n | 0x614DC45);
    cout << "After: " << n << endl;
 
        system("pause");
}
Prividenie
74 / 74 / 6
Регистрация: 05.10.2008
Сообщений: 233
29.09.2010, 23:39     С операциями сдвига из 123456 получить 102030405060 #9
видел закрыли тему в которой было указано в 8-й сист. сч. можно так, а можно и как то укоротить
C
1
2
3
4
5
6
7
8
#include <stdio.h>
int main()
{
unsigned int a = 0x7D63;//76543
a = ( (a >> 12) << 27 ) | ( ( (a & 0xFFF) >> 9 ) << 21 ) | ( ( (a & 0x1FF) >> 6 ) << 15 ) | ( ( (a & 0x3F) >> 3 ) << 9 ) | ( (a & 0x7) << 3 );
printf("%o", а);
return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.06.2016, 13:14     С операциями сдвига из 123456 получить 102030405060
Еще ссылки по теме:

Работа с битовыми операциями - C++
Дан массив целых чисел. Составить функцию unpack Char, которая принимает целую переменную типа unsigned и распаковывает из нее два символа....

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

Работа с битовыми операциями - C++
Реализовать функции шифрования и дешифрования строк. Принцип шифрования: на четыре бита слева каждого символа нало-жить 4-ёх битную маску...

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


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

Или воспользуйтесь поиском по форуму:
Aklasan123
0 / 0 / 0
Регистрация: 27.06.2016
Сообщений: 3
27.06.2016, 13:14     С операциями сдвига из 123456 получить 102030405060 #10
TheMachinist, А как получить из числа 231457 -> 2030405070
Yandex
Объявления
27.06.2016, 13:14     С операциями сдвига из 123456 получить 102030405060
Ответ Создать тему
Опции темы

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