wht666 发表于 2020-4-1 23:11:52

《带你学c带你飞》作业,看不懂解释

《带你学c带你飞》课后作业 S1E21:指针
第四题,看不懂答案,求大佬帮忙解释一下,题目截图在图片上

人造人 发表于 2020-4-1 23:44:53

这里有D选项的解释,其他选项自己看

https://fishc.com.cn/thread-155183-1-1.html

sunrise085 发表于 2020-4-1 23:56:36

本帖最后由 sunrise085 于 2020-4-2 00:05 编辑

这是32位二进制,占四个字节。
有可能是一个四字节的整数;有可能是两个双字节整数;还可能是4个单字节字符;甚至可能是一个浮点数
只要符合存放规则有合适的值能够与其对应,那就是正确答案

若将二进制0110 0111 0110 1100 0110 1111 0110 0010;转为一个十进制数,就是1735159650

若分成两个双字节0110 0111 0110 1100和0110 1111 0110 0010;则前者转为十进制是26476,后者是28514

若将之分成四个单字节,则刚好是103,108,111,98,若将之当做ASCII码,则是glob四个字符

若是将之看成浮点数,就比较麻烦了,第一位是符号位,接着是8位阶码,后面是23位尾数,转换成十进制数字比较复杂。
符号位为0表示正数,阶码是11001110,转换过来时79,即2的79次方,
尾数的小数部分是110 1100 0110 1111 0110 0010,整数部分是1,合起来就是1.110 1100 0110 1111 0110 0010
尾数乘阶码转为十进制就是15,495,010×2^56=1,116,533,140,193,633,747,599,360 就是1.11633*10^24
这个浮点转化你可以网上查一下如何转换


wht666 发表于 2020-4-2 10:08:06

sunrise085 发表于 2020-4-1 23:56
这是32位二进制,占四个字节。
有可能是一个四字节的整数;有可能是两个双字节整数;还可能是4个单字节字 ...

谢谢,我大概理解了
页: [1]
查看完整版本: 《带你学c带你飞》作业,看不懂解释