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

Преобразовать целые числа в битовую посследовательность - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Тест по C++ http://www.cyberforum.ru/cpp-beginners/thread775440.html
Ребята помогите пожалуйста с тестом: 1. Переменную какого типа можно использовать в качестве селектора в операторе switch-case? A) int. B) double. C) char. D) Переменную пользовательского класса. 2. Что из перечисленного является примитивным типом? A) Пользовательский класс. B) Пользовательская структура. C) Массив int.
C++ Как по лучше переписать данный кусок кода FILE* f; int fileSize = 0; f = fopen("zz.txt","r"); char buf; fseek(f, 0, SEEK_END); rewind(f); fgets(buf,128,f); for(int i = 0,c=0; i<sizeof(buf)/sizeof(*buf); i++){ if((int)buf==0 || (int)buf==-52){continue; } http://www.cyberforum.ru/cpp-beginners/thread775438.html
Массивы и перегрузки C++
Есть парочка вопросов. Как объявить указатель на двумерный массив? На одномерный в таком виде int *ptr = new int ; а с двумерным так не получается. Как перегрузить индексацию двумерного массива? Если объявлять прототип так int &operator (int, int); то пишет, что слишком много параметров.
Перегрузка операторов C++
class MyInt { private: int i; public: MyInt(int _i=0) { i=_i; } int getValue()
C++ Получить сумму тех чисел данной последовательности, которые кратны 5 http://www.cyberforum.ru/cpp-beginners/thread775416.html
Даны целые числа а1,…,а50. Получить сумму тех чисел данной последова-тельности, которые кратны 5
C++ Вычислить количество ядер в процессоре Необходимо было написать программу, вычисляющую количество ядер в процессоре.всё работает.мне осталось непонятным команда "-std=c++0x" при компилированиии, что она делает? компилировал так: g++ 1.cpp -o 1.exe -std=c++0x подробнее

Показать сообщение отдельно
melanu
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 118
31.01.2013, 12:04  [ТС]     Преобразовать целые числа в битовую посследовательность
Цитата Сообщение от Croessmah Посмотреть сообщение
Так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <cstdio>
 
void showbinary(unsigned long int x){
    size_t size=sizeof(x)*8;
    for(size_t i=0;i<size;++i,x/=2)
        printf("%d",x%2);
}
 
int main(){
    showbinary(255);
    showbinary(32423);
    showbinary(38297498);
    printf("\nPress enter");
    getchar();
}
Да спасибо огромное теперь более понятным языком написано Получается вот эти вот числа: 255 32423 38297498 она переводит в битовую посследовательность? я правильно понимаю?

Добавлено через 20 минут
Цитата Сообщение от palva Посмотреть сообщение
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
#include <stdio.h>
 
const int n=10;
long int a[n]={4,2,1,32,128,4,4,4,4,4};
long int b[n]={0,0,0,0,0,0,0,0,0,0};
int main() {
    int i, k, m;
    unsigned __int64 buff,temp;
    unsigned int bt;
    buff=0;
    k=0;
    for(i=0; i<n; i++) {
        if(buff & 0xFFFFFFFF80000000) {
            b[k++] = buff & 0xFFFFFFFF;
            buff >>= 32;
        }
        for(m=32, bt = 0x80000000; m > 0 && (bt & buff) == 0; m--, bt >>= 1);
        temp = a[i];
        temp <<= m;
        buff |= temp;
    }
    b[k++] = buff & 0xFFFFFFFF;
    buff >>= 32;
    if(buff) b[k++] = buff;
    for(i=0; i<k; i++) printf("%08X\n", b[i]);
    return 0;
}
Пробовала этот код но выдаёт много warning
3\main.c(43): error #2001: Syntax error: expected ';' but found 'buff'.
3\main.c(43): error #2048: Undeclared identifier 'buff'.
3\main.c(43): error #2048: Undeclared identifier 'temp'.
3\main.c(50): warning #2131: Shifting an 'int' by 32 bits is undefined.
3\main.c(58): warning #2131: Shifting an 'int' by 32 bits is undefined.
3\main.c(43): warning #2114: Local '__int64' is not referenced.
 
Текущее время: 00:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru