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

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

Войти
Регистрация
Восстановить пароль
 
TheDanger227
6 / 6 / 1
Регистрация: 27.11.2012
Сообщений: 58
#1

Осуществить зеркальное отображение байта (unsigned char b) - C++

22.09.2013, 23:03. Просмотров 475. Ответов 1
Метки нет (Все метки)

Проблема в следующем (12 строка), если использовать cin то в двоичной системе выводит не правильно, с начала записывает в конец, допустим если ввести 25, будет 00110010 вместо 00011001, а если использовать scanf_s то все правильно выводит, но после завершения вылазит ошибка: Run-Time Check Failure #2 - Stack around the variable 'z' was corrupted. Как исправить?
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale(0,"Rus");
    unsigned char b, r; 
    unsigned char z; 
    cout<<"Введите число: ";
    cin>>z;
    //scanf_s("%d",&z);
 
// вывод по основанию 2 
    cout<<"Байт числа: ";
    b = 1 << ((sizeof(z)<<3)-1);
    for(int i=0; i<(sizeof(z)<<3); i++) 
    { 
        if(z & b) cout << "1"; else cout << "0"; 
        b = b >> 1; 
    } 
    cout << endl; 
 
// сам алгоритм 
    b = 1; 
    r = 0; 
    for(int k=0; k < (sizeof(z)<<3); k++) 
    { 
        r = r << 1; 
        if(z & b) r = r | 1; 
        b = b << 1; 
    } 
    cout << endl; 
    cout<<"Зеркальное отображени байта: ";
// вывод по основанию 2 
    b = 1 << ((sizeof(z)<<3)-1) ; 
    for(int i=0; i<(sizeof(z)<<3); i++) 
    { 
        if(r & b) cout << "1"; else cout << "0"; 
        b = b >> 1; 
    } 
    cout << endl; 
 
    cin.get(); 
    system("pause");
    return 0;
}
 
 
}
Добавлено через 39 минут
кто-нибудь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2013, 23:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Осуществить зеркальное отображение байта (unsigned char b) (C++):

Осуществить зеркальное отображение байта (unsigned char b) - C++
То есть у нас есть, допустим: 00011001, надо получить 10011000. Как это сделать? #include &lt;iostream&gt; int main() { unsigned...

Приведение типов unsigned char[2] to unsigned char [64] - C++
Добрый день! Подскажите пожалуйста, как поступить. Есть простая функция main int main() { SHA1Context sha; uint8_t...

Сделать преобразование unsigned char в char, а затем типу int - C++
Здраствуйте, есть вопрос: Число представлено двумя полями: типа long для рублей и unsigned char - для копеек. Собственно что мне...

Std::fstream почему функция write принимает параметр char* а не unsigned char* (аля byte*) ? - C++
Ну собственно сабж... std::fstream fs; fs.write((char*)..) В случае бинарного потока я допустим пишу байты функцией write, как...

Неверная конверсия из char* в unsigned char* - C++
Здравствуйте. Почему-то ловлю ошибку, гласящую о том, что не удалась конверсия из char* в *unsigned char*. Не понимаю, почему она вылазит?...

const char и unsigned char - C++
Всем привет. Такое дело. Это даже проблемой не назовешь, но суть такая. Мне нужно записать const char в unsigned char через конструктор...

1
borodat
Заблокирован
22.09.2013, 23:44 #2
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
#include <iostream>
#include <iomanip>
 
typedef unsigned char byte_t;
 
void set_mirror (byte_t * var) {
 
    byte_t t = *var;
 
    t = t >> 4 | t << 4;
    t = ((t & 0xCC) >> 2) & 0x33 | ((t & 0x33) << 2) & 0xCC;
    t = ((t & 0xAA) >> 1) & 0x55 | ((t & 0x55) << 1) & 0xAA;
 
    *var = t;
}
 
int main () {
 
    byte_t var = 0xCA;
    set_mirror( &var );
 
    std::cout << std::hex << (int)var << std::endl;
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2013, 23:44
Привет! Вот еще темы с ответами:

Совместимость char и unsigned char - C++
Есть некие числа в виде unsigned char. Есть строка в виде массива char (которая потом сбрасывается в файл с помощью fputs). В программе...

Unsigned char * в char * и наоборот - C++
Здравствуйте!помогите перевести unsigned char * в char * и наоборот без использования printf

Типы данных - где нужно использовать char, а где unsigned char? - C++
Всем привет! У меня вопрос, искал ответ на него, но безуспешно. Вопрос следующий: есть два типа char и unsigned char. Я понимаю, что в...

зеркальное отображение матрицы - C++
Здравствуйте, допустим у нас есть двумерный массив чисел 3 4 5 6 4 2 9 8 1 мне нужно &quot;зеркально отобразить&quot;, так как я сам не...


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

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

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