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

Как лучше сделать. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Выделить в массиве последовательность чисел и сравнить выделенное с константами http://www.cyberforum.ru/cpp-beginners/thread49213.html
Привет всем! Прошу помощи!:) Существует некий массив (его содержимое динамически меняется),например: unsigned char Name1 ; и константы: unsigned char Name2="abcde"; unsigned char Name3="54321"; пускай в массив записалось следующее: 1234567890abcde0987654321
C++ Ошибка, связанная с массивами Вот такой код для такой задачи: записать в массиве М количество положительных элементов каждого столбца матрицы A(K,L). #include <iostream> #include <stdio.h> #include <conio.h> #include <math.h> int **ReadMatrixFromFile(int &K, int &L); int **CreateMatrix(const int K, const int L); void FreeMatrix(int **X, const int L); void CountPositiveElementsIn(int **X, const int K, const int L,... http://www.cyberforum.ru/cpp-beginners/thread49195.html
Работа с файлами. Язык С C++
существует такой код int c; FILE *f=fopen("C:/test.txt", "r"); c=getc(f); char a;
C++ Расшифровать цикл
Здравствуйте! Помогите,если кто может, понять вот этот кусок кода,что он делает,желательно чтоб было понятно. for(j = 0; j < 10; j++) if(sqrs ==i) break; из вот этого исходника:
C++ ++N http://www.cyberforum.ru/cpp-beginners/thread49185.html
в чем отличие ++а от а++?
C++ Использование toupper() Не знаю почему, но код не хочет работать, вроде уже всё прописал что нужно. Программа должна выдать на экран фразу: украина - лучшая страна в мире с большой буквы все символы. Во исходник простой программы: #include <iostream> #include <cctype> #include <cstring> using namespace std; int main() подробнее

Показать сообщение отдельно
Mozart
 Аватар для Mozart
39 / 17 / 1
Регистрация: 21.08.2009
Сообщений: 63
03.09.2009, 18:02  [ТС]     Как лучше сделать.
Все, вспомнил про такую чудную операцию, спасибо.
novi4ok, Когда речь идет о скорости, я стараюсь избегать какие либо деления умножения и прочие условия. Потому теперешний код имеет слудующий вид:
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
#include <cstdlib>
#include <iostream>
char* I=new char [60000];
 
bool getbit(int x,int y){
     int p=((y<<9)+(y<<8)+(y<<5)+x);
     int n=p&7;//тут получаем номер интересуещего нас бита
     p>>=3;//тут смещение по которому находится интересующий нас байт
     return (I[p]&(1<<n))>>n;
}
void setbit(int x,int y){
     int p=((y<<9)+(y<<8)+(y<<5)+x);
     int n=p&7;//тут получаем номер интересуещего нас бита
     p>>=3;//тут смещение по которому находится интересующий нас байт
     char mask=(1<<n);
     I[p]|=mask;
}
void clearbit(int x,int y){
     int p=((y<<9)+(y<<8)+(y<<5)+x);
     int n=p&7;//тут получаем номер интересуещего нас бита
     p>>=3;//тут смещение по которому находится интересующий нас байт
     char mask=(1<<n)^0xFF;
     I[p]&=mask;
}
using namespace std;
 
int main(int argc, char *argv[])
{
    setbit(5,599);
    setbit(3,599);
    setbit(7,599);
    setbit(2,599);
    clearbit(3,599);
    for (int j=598;j<600;j++){
        cout<<j<<":"<<endl;
        for (int i=0;i<800;i++)cout<<getbit(i,j);
}
 
int y=599,x=799;
cout<<(((y<<9)+(y<<8)+(y<<5)+x)>>3)<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
delete[] I;
}
 
Текущее время: 07:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru