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

Препод задал повторить сервис на с++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Что такое void? http://www.cyberforum.ru/cpp-beginners/thread204283.html
С++ 1).Что такое void ? 2).Что ткое void swap ? 3).Что такое temp ? 4).Что ткое fot ? заранее спс
C++ Выход за границы. как исправить??? Суто проги в том, чтобы из 2х массивов создать третий элементами которого я вляются совпавшие элементы первых 2х Например: 1 2 3 4 5 7 5 2 9 8 третий массив: 2 5 Прога работает, НО при выводе результатов появляются огромные числа вместе с результатом, как мне сказали, здесь проблема с границами. как исправить??? Подскажите пожалуйста!!!? # include "stdio.h" http://www.cyberforum.ru/cpp-beginners/thread204281.html
C++ Операторная ф-ция
Добрый вечер, вот есть код: #include <iostream> #include <stdio.h> #include <stdlib.h> #include <vector> #include <algorithm>
C++ Удалить числа превышающее N
удаление чисел превышающих N, остальные вывести на экран
C++ пишет ошибку отсутствия заголовка функции http://www.cyberforum.ru/cpp-beginners/thread204273.html
вообще пишет ошибку отсутствия заголовка функции... вот код #include "stdafx.h" #include <stdio.h> #include <windows.h> void zadanie1 (); void zadanie2 (); void zadanie3 (); void zadanie4 ();
C++ лабораторная по теме файлы Дан бинарный файл, содержащий числа а1, b1, a2, b2... Каждая пара чисел a и b определяет числитель и знаменатель натуральной дроби a/b. Проверить образуют ли дроби арифметическую прогрессию. По результатам проверки вывести на экран соответствующее сообщение. подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
06.12.2010, 01:40     Препод задал повторить сервис на с++
В помощь.

Гарантируется, что тип long будет оснащен не менее 32 разрядами. В них легко влезает IP адрес.
C++
1
unsigned long int ip;
Активней пользуйтесь битовым сдвигом. Он очень быстро умножает на степени двойки и очень полезен для работы с Ip адресом.

Например, функция, выводящая IP адрес в виде строки.
C++
1
2
3
4
5
6
string ip2str(unsigned long int n)
{
    stringstream out;
    out << (n >> 24 ) << "." << ((n << 8) >> 24) << "." << ((n << 16) >> 24) << "." << ((n << 24) >> 24);
    return out.str();
}
Пользуйтесь битовыми операциями ~, &, | и ^. Они помогут вычислять бродкасты и т.п.
C++
1
2
3
4
5
6
7
8
9
10
11
12
    unsigned long int ip = (192<<24)+(168<<16)+(1<<8)+15;
    int mask = 16;
    unsigned long int ip_mask = ~(0xFFFFFFFF >> mask);
    unsigned long int network_number = ip & ip_mask;
    unsigned long int broadcast = network_number | (~ip_mask);
 
    unsigned long int max_adress = broadcast - 1;
    unsigned long int min_address = network_number + 1;
 
    cout << ip2str(ip) << " : " << ip2str(ip_mask) 
        << " : " << ip2str(network_number)
        << " : " << ip2str(broadcast) << endl;
 
Текущее время: 03:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru