打印出double类型在内存中的每个位

printf没有打印二进制。

自己写了一个,先转成16进制,再转成二进制。

也可以先转成8进制,再转成二进制。

我测试环境double是8个字节,64位长度。

*/

/*打印出double在内存的中的每一个二进制位
*/
void DoubleToString(double *p_dl){
       char c_dl_16[16+1];
       char c_dl_64[64+1];
       memset(c_dl_64,'\0',sizeof(c_dl_64));
       unsigned char *t = (unsigned char *)p_dl;
       int charCount = sizeof(double) ;
       memset(c_dl_16,'\0',sizeof(c_dl_16));
       
       if (t == NULL)
       return;
     int i=0;
     for(i=0;i<charCount;i++){
        sprintf(c_dl_16+i*2,"%02x",t[i]);
     }
     /*printf("\n");  */
          printf("[%s]\n",c_dl_16);  
     /*对每一位,将十六进制转换为二进制的字符串*/
     char tmpc[4+1];
     for(int j=0;j<16;j++){
      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值