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

Сдвиг 128-битного числа - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ списки типов http://www.cyberforum.ru/cpp/thread65686.html
Пожалуйста помогите составить пример списков типов состоящий из трех эллементов!!!!! И если не сложно провоментируйте сам пример.
C++ Почему цикл не заканчивается??? Всем добрый день! У меня здесь вопрос по циклу while. Вот программа по подсчёту букв и сочетаний в тексте: #include <iostream> #include <string> #include <ctype.h> void main() { using namespace std; string str; int aCnt=0, eCnt=0, iCnt=0, oCnt=0, uCnt=0, consonantCnt=0, ffCnt=0, flCnt=0, fiCnt=0; http://www.cyberforum.ru/cpp/thread65638.html
Как посчитать сложный факториал? C++
Вопрос конечно до безобразия скучный и неинтересный, хотя кто знает....Но, как мне посчитать вот эту сумму??? Проблема в том, что я не могу посчитать то что под знаком суммы, т.е вывести закономерность: на что нужно умножить прошлое число, чтобы получить следующее....чтобы потом его в цикл записать, типа в начале объявляем p=1, а потом в цикле p=p*(что-то). Если кто разбереться, то напишите,...
C++ Переписать элементы матрицы по убыванию
Для заданной матрицы переписать ее элементы в векторном виде по убыванию
C++ Переопределить поток вывода cout http://www.cyberforum.ru/cpp/thread65288.html
Есть некоторый кусок кода выводящий на консоль информацию с помощью cout, все бы хорошо, но при некоторых условиях, бывает нужно выводить эту инфу в файл. Хотелось бы без дублирования кода, провести эту операцию, то есть вывести в файл, с помощью cout. Реально ли это? Файл использую - ofstream fout("output.txt"); В Delphi это делалось просто - rewrite(output, "output.txt") А в С++, что-то...
C++ Visual Studio 2010 Кто нибудь пробовал??? Хочу узнать отзывы... подробнее

Показать сообщение отдельно
manfeese
129 / 128 / 16
Регистрация: 04.01.2009
Сообщений: 415
23.11.2009, 11:24     Сдвиг 128-битного числа
Вот циклический сдвиг
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
52
53
54
55
56
57
#include <iostream.h>
#include <conio.h>
 
using namespace std;
 
enum TShiftState {Left=0,Right};
void StringShift (char *S, int StringSize, int bits, TShiftState SState)
{
 int Carr1=0,Carr2=0;
 
 if (SState)
 {
  //========== Сдвиг впарво ===========
  for (int j = 0; j < bits; j++)
  {
    Carr2=0;
    for (int i = 0; i < StringSize-1; i++)
    {
      (S[i] & 1) == 1 ? Carr1 = 0x80 : Carr1 = 0;
      S[i]>>=1;
         if ( (S[i] & 0x80) == 0) S[i]+=Carr2;
         else if (Carr2==0) S[i]+=0x80;
      Carr2=Carr1;
    }
     if ( (S[0] & 0x80) == 0) S[0]+=Carr2;
     else if (Carr2==0) S[0]+=0x80;
  }
  //===================================
 }
 else
 {
  //=========== Сдвиг влево ===========
  for (int j = 0; j < bits; j++)
  {
    Carr2=0;
    for (int i = StringSize-2; i >=0; i--)
    {
      (S[i] & 0x80) == 0x80 ? Carr1 = 1 : Carr1 = 0;
      S[i]<<=1;
      S[i]+=Carr2;
      Carr2=Carr1;
    }
      S[StringSize-2]+=Carr2;
  }
  //===================================
 }
}
 
int main()
{
    char S[] = "0123456789abcdef";              //  строка любых значений
    StringShift(S,sizeof(S),(sizeof(S)-1)*8,Left);
    cout<<S;
 
    getch();
    return 0;
}
 
Текущее время: 14:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru