poj2105,

Problem:

 Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 14026 Accepted: 8022
Description
Suppose you are reading byte streams from any device, representing IP addresses. Your task is to convert a 32 characters long sequence of '1s' and '0s' (bits) to a dotted decimal format. A dotted decimal format for an IP address is form by grouping 8 bits at a time and converting the binary representation to decimal representation. Any 8 bits is a valid part of an IP address. To convert binary numbers to decimal numbers remember that both are positional numerical systems, where the first 8 positions of the binary systems are:
27   26  25  24  23   22  21  20

128 64  32  16  8   4   2   1
Input
The input will have a number N (1<=N<=9) in its first line representing the number of streams to convert. N lines will follow.
Output
The output must have N lines with a doted decimal IP address. A dotted decimal IP address is formed by grouping 8 bit at the time and converting the binary representation to decimal representation.
Sample Input
4
00000000000000000000000000000000
00000011100000001111111111111111
11001011100001001110010110000000
01010000000100000000000000000001
Sample Output
0.0.0.0
3.128.255.255
203.132.229.128
80.16.0.1
Source
México and Central America 2004

Solution:

Just straight forward translate the binary to decimal numbers.

Source Code:

//Wed Apr 14 13:26:22 CDT 2010
#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <queue>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cctype>
#include <string>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>

using namespace std;

int main(int argc, const char* argv[])
{
freopen("input.in", "r", stdin);
freopen("output.out", "w", stdout);
int N;
while (cin >> N)
{
for (int i = 0; i < N; i++)
{
string str;
cin >> str;
int a = 0;
int b = 0;
int c = 0;
int d = 0;
for (int idx = 0; idx < 8; idx++)
{
a = a * 2 + str[idx] - '0';
}
for (int idx = 8; idx < 16; idx++)
{
b = b * 2 + str[idx] - '0';
}
for (int idx = 16; idx < 24; idx++)
{
c = c * 2 + str[idx] - '0';
}
for (int idx = 24; idx < 32; idx++)
{
d = d * 2 + str[idx] - '0';
}
cout << a << "." << b << "." << c << "." << d << endl;
}
}
fclose(stdin);
fclose(stdout);
return 0;
}
{"ft_lang_label":"__label__en","ft_lang_prob":0.6137994,"math_prob":0.96048355,"size":2525,"snap":"2019-43-2019-47","text_gpt3_token_len":762,"char_repetition_ratio":0.17651725,"word_repetition_ratio":0.09280743,"special_character_ratio":0.39405942,"punctuation_ratio":0.15448852,"nsfw_num_words":0,"has_unicode_error":false,"math_prob_llama3":0.9771041,"pos_list":[0],"im_url_duplicate_count":[null],"WARC_HEADER":"{\"WARC-Type\":\"response\",\"WARC-Date\":\"2019-10-19T10:15:06Z\",\"WARC-Record-ID\":\"<urn:uuid:98fdbb4c-478f-421a-9a9f-8362a33c3c16>\",\"Content-Length\":\"113303\",\"Content-Type\":\"application/http; msgtype=response\",\"WARC-Warcinfo-ID\":\"<urn:uuid:cc0b7ad6-df59-40ac-a5a8-117291834aa1>\",\"WARC-Concurrent-To\":\"<urn:uuid:09657bf4-1d55-4438-b45d-a05f15240733>\",\"WARC-IP-Address\":\"172.217.5.243\",\"WARC-Target-URI\":\"http://code.antonio081014.com/2010/10/poj2105ipaddresscpp.html\",\"WARC-Payload-Digest\":\"sha1:7PIIHXNYQQKJNAVEF2F66XVKWN3JFVUC\",\"WARC-Block-Digest\":\"sha1:QWQ74EYT3RCOI7EQTDIIE5RFNSRZYW3L\",\"WARC-Identified-Payload-Type\":\"application/xhtml+xml\",\"warc_filename\":\"/cc_download/warc_2019/CC-MAIN-2019-43/CC-MAIN-2019-43_segments_1570986692723.54_warc_CC-MAIN-20191019090937-20191019114437-00472.warc.gz\"}"}