搜索

C\C++联合体(共用体)数值问题,高手请进!高分配英雄!

发布网友 发布时间:2024-10-24 16:44

我来回答

3个回答

热心网友 时间:2024-10-31 13:55

共用体的特点时,同一个共用体内的各个变量的地址相同。以这个为例,a,b,c及x的变量地址是相同的,比如在我的VC2008的显示地址是0x0012ff60。x所占的字节就等于a\b\c里占字节最大的,也就是a和b,都占4个字节,那么x也占4个字节。x的值是100。也就是说下面这样。
0x0012ff60
0x0012ff61 00
0x0012ff62 00
0x0012ff63 00
那么a的值也是100,确切的说是0x000000 ,也就是10进制的100. c占一个字节,应该为0x,也就是10进制的100.
b是浮点型,他在内存中存放和整形不一样。浮点数据在内存中的存放方式比较复杂,不好理解。
你可以在网上查下。

根据IEEE的标准,浮点数的定义如下
符号位 指数位 小数部分 指数偏移量
单精度浮点数 1 位[31] 8位 [30-23] 23位 [22-00] 127
双精度浮点数 1 位[63] 11 位[62-52] 52 位[51-00] 1023
把0x000000换成4字节32位的二进制看下
00000000 00000000 0000000 01100100
第32位是符号位,0是正,1是负
30-23位是指数,
22-0位是小数。

不知道TC环境下为什么是0.000,没有装TC ,不过1.4013e-043近似值是0.0000

热心网友 时间:2024-10-31 13:56

编译器问题!

热心网友 时间:2024-10-31 13:59

你用的是TC几呢?
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top