HJ33 整数与IP地址间的转换
摘要
Title: HJ33 整数与IP地址间的转换
Tag: 二进制
Memory Limit: 64 MB
Time Limit: 1000 ms
Powered by:NEFU AB-IN
HJ33 整数与IP地址间的转换
-
题意
原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成一个长整数。
输出转换成10进制的IP地址 输出转换后的IP地址 -
思路
- 将四个数输入之后,c要左移8位,a和b以此类推
- 输入大数之后,先求a,即原数右移(3 * 8)位,然后原数减去a,接着往下求即可
-
代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using namespace std;
int main() {
long long int a, b, c, d;
long long int num;
while (scanf("%lld.%lld.%lld.%lld", &a, &b, &c, &d) != EOF) {
cin >> num;
cout << (a << 24) + (b << 16) + (c << 8) + d << endl;
a = num >> 24;
num = num - (a << 24);
b = num >> 16;
num = num - (b << 16);
c = num >> 8;
d = num - (c << 8);
cout << a << "." << b << "." << c << "." << d << endl;
}
}