циклический сдвиг на С++ подскажите пожалуйсто, как на С++ реализовать циклический сдвиг влево/вправо на m бит байта (unsigned char b)
Code: DWORD rol32(DWORD x, UINT n){ return( ((x) << (n)) | ((x) >> (32-(n))) ); }; DWORD ror32(DWORD x, UINT n){ return( ((x) >> (n)) | ((x) << (32-(n))) ); }; BYTE rol8(BYTE x, UINT n){ return( ((x) << (n)) | ((x) >> (8-(n))) ); }; BYTE ror8(BYTE x,UINT n){ return( ((x) >> (n)) | ((x) << (8-(n))) ); }; Юзать асм вставки в с++ надо в очень крайних случаях, которые я еще не встречал =)
ну тогда уж #define ror8(x, n) ( ((x) >> (n)) | ((x) << (8-(n))) ) или функции _rotl, _rotl16, _rotl64, _rotl8 и _rotr аналогичные
а можно без использования каких либо вставок ассемблера, например так Code: void main() { int b=9, m=1; while (b!=0) { b= b>>m; cout << b <<endl; getch(); } }
SwitcH это не циклический сдвиг. desTiny угу, но я не люблю дефайны. я сделал себе хидер с классом со статик методами, реализованными прямо в хидере, и скинул в папку своих классов, прописанную в настройках студию. В итоге делаю #include <bitworks.hpp> и Bitworks::ror32(...); Нагляднее и удобнее. И файл в проект добавлять не надо, компилится так, в отличие если делать реализацию в cpp файле.
Столкнулся тут с проблемой. Есть массив координат например mas[10][2]. т.е.: x 200 300 120 ... y 50 100 300 ... так вот я беру еще одну координату например 25;25 Надо проверить в радиусе 5-ти клеток есть ли какие либо координаты из массива. Если рядом есть точка вернуть 0, нету вернуть 1. Сам составил, но видимо уже не соображаю, у меня то он сверяется только с первой координатой массива, то только с последней.
Все сам составил: Code: for ( int i = 0; i < coordinates[0].size(); i++) if ( coordinat[0][i] + SizePen > mouse->x() && coordinat[0][i] - SizePen < mouse->x() && coordinat[1][i] + SizePen > mouse->y() && coordinat[1][i] - SizePen < mouse->y() )
http://www.codeproject.com/info/search.aspx?artkw=rootkit это про руткиты, по-моему самое важное в вирях... тоны исходников и описания к ним. (все на инглише) а размножение ctrl+C ctrl+V
PHP: char *RbcMessage[] = { "GET http://192.168.1.2/index.php?dfg HTTP/1.1\r\n", "Connection: Keep-Alive\r\n", "Accept: */*\r\n", "Referer: http://www.127.0.0.1.ru\r\n", "Accept-Language: ru\r\n", "Accept-Encoding: gzip, deflate\r\n", "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en)\r\n", "Host: 192.168.1.2\r\n\r\n\r\n", NULL }; int iMsg = 0; bool boolean; char buffer[100]; int DataLen; WSADATA WSAData; WSAStartup(MAKEWORD(2,2), &WSAData); SOCKET sock; sock = socket(AF_INET,SOCK_STREAM,0); sockaddr_in sendsock; sendsock.sin_family = AF_INET; sendsock.sin_port = htons(80); sendsock.sin_addr.s_addr=inet_addr("http://192.168.1.2/index.php"); connect(sock,(LPSOCKADDR)&sendsock,sizeof(sendsock)); for(iMsg = 0;(RbcMessage[iMsg]); iMsg++) send(sock, (LPSTR)RbcMessage, strlen(RbcMessage[iMsg]), 0); closesocket(sock); собсно тестил на локалхосте. даже логов в апаче о коннекте нету =\.
Может стоит для начала пример из мсдна посмотреть? http://msdn.microsoft.com/en-us/library/ms740121%28VS.85%29.aspx
Всем привет! Нужна помощь. Нужно перевести чимволы в ASCII код и наоборот. В аски код вроде все ок: ... char text[] = "test"; int ascii = (int)text; ... А вот наоборот как - хз.. Если делать так: ... int ascii = (int)text; char nazad = (char)ascii; ... Тогда переводится один байт, то есть а переменную nazad помещается 1 байт. А с массивом не выходит =\ Выручайте!
и что там у тебя все ок? ты просто записываешь в переменную ascii адрес строки. Опиши нормально, что ты хочешь получить? int, заполненный кодами символов или что. ps: размер char сколько в байтах? И как ты ожидаешь туда засунуть больше одного байта?
char лучше оставлять char"ом Code: const int length=10; char a[length] = "123123"; int b[length]; for (int i=0; i<length;i++) // берём код символа b[i]=(int)a[i]; for (int i=0; i<length;i++) //наоборот a[i]=(char)b[i]; char <- 1байт int <- 4байт получаем увеличение в 4 раза. Что не есть гуд.
> пиши нормально, что ты хочешь получить? int, заполненный кодами символов или что. Мне необходимо перевести латинские и русские символы в ASCII коды. >ps: размер char сколько в байтах? И как ты ожидаешь туда засунуть больше одного байта? Это меня и интересует, каким образом выполнить обратную операцию и поместиьть результат в массив?