level 7
浮点数的表示是
(-1)^S * M * 2^E
S是符号位,为1是负数,为0是正数
M表示有效数字,大于等于1,小于2
2^E表示指数位
2021年10月06日 10点10分
3
level 7
举个例子,十进制的-5.0在二进制中相当于-101.0,就是-1 * 1.01 * 2^2
2021年10月06日 10点10分
4
level 7
在32位浮点数中,第1位是符号位S,后面的8位是指数E,剩下23位是有效数字M
2021年10月06日 10点10分
6
吧务
level 15
题目不严谨,没有说明这个浮点数是多少位的,所以答案至少可以有两个
写个代码可以很容易地得到答案,如下:
32位的float类型:
float f32=169.375;
printf("0x%x\n",*(unsigned int*)&f32);
结果是0x43296000
64位的double类型:
double f64=169.375;
printf("0x%llx\n",*(unsigned long long*)&f64);
结果是0x40652c0000000000
2021年10月06日 15点10分
7
level 15
哪个挂科叒鸡出的什么破烂问题,这玩意儿不日穿实现 C 根本看不出来怎么表示。
要 C++ 还可以套娃 IEC 60559 强行瞎蒙 std::numeric_limits<T>::is_iec559 ,C 连引用个 LIA-1(ISO/IEC 10967-1) 都遮遮掩掩的,根本就没正儿八斤的浮点数表示这概念、、
居然还直接浮点数“补码”、、、出这题的是 C 混不过去计组也要挂科的罢、、、
2021年10月07日 15点10分
11
我们老师出的 敢怒不敢言
2021年10月10日 02点10分
叫你们老师重修。混个学位证不要浪费时间在这上面。
2021年10月10日 02点10分