数据的存储是以二进制的形式进行的,存储的是二进制数,不是十进制的数。
例如
计算机在存储的时候存储的都是二进制数字,对应的是计算机参数的32位和那个64位
这个函数首先把n为9的二进制数存进计算机,int n=9 ,9的二进制数1001, 存储形式00000000000000000000000000001001,十六进制形00000009
再把n的二进制数强制转换成浮点型的存储在*pfloat,float*pfloat=(float*)&n, 把n的二进制存储在指针当中,n被强制类型转换
此时计算机中存储的二进制数没有发生改变
打印的时候,%d是10进制的形式打印,打印的是9 ,n
打印*p打印的是浮点型数据,它的打印方式和%d不同,它的存储形式
所以转换成十进制是0.000000000000001001*(2^-126)约等于0,打印前6位数就是0.
第二行,浮点型指针存储的是9.0
9的二进制科学计数法为1.001^2^3
E在存储的时候指数为有加127,存储在计算机当中的E为130,10000010
改成存储在计算机当中的的二进制数是,
0 10000010 00100000000000000000000000
打印%d是正数打印,符号位为0,表示是正数,次二进制数就是表示正数的二进制的数,换成十进制是一个很大的数。
打印*p就是打印9.000000.他就是按照浮点型进行存储的,打印的也就是浮点数。