Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/2: Рейтинг темы: голосов - 2, средняя оценка - 5.00
iezuit
1 / 1 / 0
Регистрация: 16.10.2009
Сообщений: 29
1

возникла неприятность

16.10.2009, 19:20. Просмотров 424. Ответов 4
Метки нет (Все метки)

Дело вот в чем, задание гласит следующее:
Дано целое число n, поменять местами байты этого числа.
Я исходил из того, что эт число n двубайтовое по идее,вот и вышло нечто такое:
n=12;
m=n;
n=n<<8;
m=m>>8;
n=n|m;
По идее это должно поменять местами байты, как мне кажется во всяком случае,но тут возникла другая проблема,программа должна всю эту штуку выводить на экран, и как это сделать нет ни малейшего понятия.Вот и потребовалась помощь,жду Ваши советы(желательно подкрепленные,так как в с++ я совсем не силен)
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2009, 19:20
Ответы с готовыми решениями:

Неприятность с классом. Прошу совета!
Я еще начинающий и с классами познакомился не давно так, что порошу помощи. Мне надо написать...

Возникла непонятка с gets()
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;cstdio&gt; using namespace std; int main() {...

Возникла ошибка в коде
Я написал код, но в конце не выводит конечный массив #include&lt;iostream&gt; #include&lt;cstdlib&gt; ...

Возникла problem по классам
#include &quot;Sales_item.h&quot; #include &lt;iostream&gt; using namespace std; int main() { Sales_item...

Возникла трудность с шаблонами
Не компилится следующий код. Не даёт вернуть итератор вектора. Почему нельзя так делать? ...

4
TanT
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,399
16.10.2009, 19:39 2
Цитата Сообщение от iezuit Посмотреть сообщение
Дело вот в чем, задание гласит следующее:
Дано целое число n, поменять местами байты этого числа.
Я исходил из того, что эт число n двубайтовое по идее,вот и вышло нечто такое:
)
ну вот смотри, я стандартную функцию преобразования в биты целого числа не знаю, поэтому всё сам, своими руками. в итоге это код демонстрирующий твой алгоритм
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
#include <iostream>
#include <cmath>
using namespace std;
 
void coutBit(int n)
{
    for (int i=16; --i>=0; )
        cout<<(int)(n/pow(2,(double)i))%2;
}
 
int main()
{ 
    int n=12, m;
    m=n;
    cout<<"n bit:       ";  coutBit(n);
    
 
    n=n<<8;
    m=m>>8;
    n=n|m;
 
    cout<<"\nn bit after: ";    coutBit(n);
 
 
    cout<<endl; system("pause");
}
Цитата Сообщение от iezuit Посмотреть сообщение
с++ я совсем не силен)
а от груди скока жмёшь?

Добавлено через 42 секунды
0
iezuit
1 / 1 / 0
Регистрация: 16.10.2009
Сообщений: 29
16.10.2009, 19:43  [ТС] 3
Благодарю за потраченное время,но у меня есть еще одна маленькая просьба,не мог бы ты объяснить логику своих действий?
П.С.пару лет назад было 90,счас скорее всего куда как меньше,разленился))
0
TanT
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,399
16.10.2009, 19:47 4
всё вроде верно то для 32битных платформ int 32бита (4 байта),

Добавлено через 3 минуты
в общем я просто визуализировал твой алгоритм.
ты правильно сдвинул байт влево и сложил с байтом сдвинутым вправо

поменял 1 и 2 байт местами.
программа осуществляет твои операции и вывод 2байт числа n в двоичном представлении

Не по теме:

90 это здорово. я тока 85.

0
iezuit
1 / 1 / 0
Регистрация: 16.10.2009
Сообщений: 29
16.10.2009, 20:03  [ТС] 5
умгум, понял. Спасибо за помощь!
0
16.10.2009, 20:03
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2009, 20:03

Возникла загвоздочка с заданием
Решаю следующее задание: Задается 2 числа a,b. Надо вычислить сколько чисел в интервале при...

Возникла проблема со switch
возникла проблема. есть switch(c){ case &quot;1&quot;:cout&lt;&lt;&quot;x&quot;;a=b;if(...) case...

Реализации МП транслитератора - возникла проблема
При реализации МП транслитератора возникла проблема. После добавления очереди queue&lt;string&gt;...


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

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

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