一个 int 类型变量或 double 类型变量在连续几个字节的内存中存放。读取数值时,当数值中包含小数点时类型为 double,否则类型为 int。将读入的数值存放在 int 类型变量或 double 类型变量中。以十六进制格式(a-f 字母采用小写形式)输出相应变量的连续的每个字节的值。
读入的数据保证能在一个 int 类型或 double 类型变量中正确存放。
注意:int 类型变量和 double 类型变量所占字节数以及一个变量的几个字节的存放顺序与所用计算机的体系结构和编译系统有关。
Input
每一行包含一个数值
Output
每行对应一个数据,每个字节后面都要输出一个空格
#include <stdio.h> #include <stdlib.h> #include <string.h> void solveint(int n); void solvedouble(double d); int main() { char s[31]; while (~scanf("%s",s)){ if (strchr(s,'.') == 0) solveint(atoi(s)); else solvedouble(atof(s)); return 0; } } void solveint(int n) { int c = sizeof(n); unsigned char *p=(unsigned char*) &n; while (c--) printf("%02x", *p++); putchar('\n'); } void solvedouble(int d) { int c = sizeof(d); unsigned char *p=(unsigned char*) &d; while (c--) printf("%02x", *p++); putchar('\n'); }