#include <iostream>

using namespace std;

void showIntBit(int a);
void showDoubleBit(double a1);
void showFloatBit(float a1); int main()
{
int a1 = ;
double a2 = 20.0;
float a3 = 20.0f; cout << "" << sizeof(a1) <<" "<<sizeof(a2)<< " "<<sizeof(a3)<<endl;
showIntBit(a1);
showDoubleBit(a2);
showFloatBit(a3); system("pause");
return ;
} //按位置取元素判断 int 4个字节,char 1个字节, 1个字节8位
void showIntBit(int a1) {
char *c1 = (char *)&a1;
char byte1;
int len1 = ;
if (a1 <= )
{
len1 = ;
}
else if (a1 > && a1 <= )
{
len1 = ;
}
else if (a1 > && a1 < )
{
len1 = ;
}
else
{
len1 = ;
} for (int i = ; i<len1; i++)
{
byte1 = *c1;
for (int j = ; j<; j++)
{
if (0b10000000 & byte1)
{
cout << "";
}
else
{
cout << "";
}
byte1 = byte1 << ;
}
cout << " ";
c1++;
}
cout << endl;
} void showDoubleBit(double val1)
{
unsigned idx;
unsigned char arr[sizeof val1]; memcpy(arr, &val1, sizeof val1); for (idx = CHAR_BIT * sizeof val1; idx--; )
{
putc(
(arr[idx / CHAR_BIT] & (1u << (idx%CHAR_BIT)))
? ''
: ''
, stdout
);
} cout << endl;
} void showFloatBit(float val1) {
unsigned idx;
unsigned char arr[sizeof val1]; memcpy(arr, &val1, sizeof val1); for (idx = CHAR_BIT * sizeof val1; idx--; )
{
putc(
(arr[idx / CHAR_BIT] & (1u << (idx%CHAR_BIT)))
? ''
: ''
, stdout
);
} cout << endl;
}

4 8 4
00010100
0100000000110100000000000000000000000000000000000000000000000000
01000001101000000000000000000000
请按任意键继续. . .

C++ int double float对应的长度以及二进制的更多相关文章

  1. c++之常见数据类型(int,double,float,long double long long 与std::string之间)相互转换(含MFC的CString、含C++11新特性函数)

    --- 已经通过初步测试---- ------------------ 下面的是传统常见数据类型的转换(非c++11)---------------  std::string 与其他常用类型相互转换, ...

  2. long int double float

    参考:https://blog.csdn.net/ideality_hunter/article/details/78432486 long是长整型,64位 int是短整型,32位 double是双精 ...

  3. string 与 int double 的转化

    #include <iostream> #include <string> #include <sstream> using namespace std; int ...

  4. mysql基础之double,float长度标度定义

    MySQL类型float double decimal的区别 float数值类型用于表示单精度浮点数值,而double数值类型用于表示双精度浮点数值,float和double都是浮点型,而decima ...

  5. 别在int与float上栽跟头(转)

    源:http://www.cnblogs.com/luguo3000/p/3719651.html int与float是我们每天编程都用的两种类型,但是我们真的足够了解它们吗.昨天在博客园看到一个比较 ...

  6. 别在int与float上栽跟头

    int与float是我们每天编程都用的两种类型,但是我们真的足够了解它们吗.昨天在博客园看到一个比较老的笑话: “昨天晚上下班回家,一民警迎面巡逻而来.突然对我大喊:站住!民警:int 类型占几个字节 ...

  7. Java 浮点数精确性探讨(IEEE754 / double / float)与 BigDecimal 解决方案

    一.抛砖引玉 一个简单的示例: double a = 0.0; IntStream.range(0,3).foreach(i->a+=0.1); System.out.println(a); / ...

  8. java中浮点数的比较(double, float)(转)

    问题的提出:如果我们编译运行下面这个程序会看到什么? public static void main(String args[]){ System.out.println(0.05+0.01); Sy ...

  9. double float的精度问题

    三部曲 1: #include <iostream> #include <stdio.h> #include <string.h> using namespace ...

随机推荐

  1. 树莓派无显示屏连接wifi

    在烧好Raspbian系统的TF卡boot分区新建 wpa_supplicant.conf 文件,内容如下(修改自己的WIFI名和密码,key_mgmt根据路由器配置),保存后启动树莓派即可自动连接W ...

  2. SpringCloud2.0 Hystrix Ribbon 基于Ribbon实现断路器

    原文:https://www.cnblogs.com/songlu/p/9949203.html 1.启动[服务中心]集群,工程名:springcloud-eureka-server 参考 Sprin ...

  3. tf学习

    常用命令: 1.显示tf框架: rosrun tf view_frames evince frames.pd tf变换,定义不同坐标系之间的平移与旋转变换关系. 参考文献: tf教程 古月居博客

  4. destoon6.0调用公司设置任意信息的方法-最新

    destoon6.0调用公司设置任意信息的方法 用法: 把以下函数加入到api/extend.func.php 中 function company_setting($userid, $key = ' ...

  5. arrayAppend.php

    <?php $t_full_projects = array(); $t_full_projects[] ='a'; $t_full_projects[] ='b'; $t_full_proje ...

  6. C++编译器与链接器工作原理

    http://blog.csdn.net/success041000/article/details/6714195 1. 几个概念 1)编译:把源文件中的源代码翻译成机器语言,保存到目标文件中.如果 ...

  7. python神器——Anaconda的安装与优化配置

    python 对于初学者来说,原版的python在使用的时候非常麻烦,特别是在添加库.升级库的时候总是会报好多错误,缺这缺那.但是自从有了Anaconda以后,妈妈再也不用担心我用不了python啦! ...

  8. make命令与Makefile(转载)

    概述博客内容包含linux下make命令的使用与makefile的书写规则等,希望通过本文档使读者对make命令makefile文件有进一步了解,由于鄙人经验学识有限文档中会有描述不准确以及理解偏差, ...

  9. Numpy | 05 创建数组

    ndarray 数组除了可以使用底层 ndarray 构造器来创建外,也可以通过以下几种方式来创建. 一.numpy.empty numpy.empty 方法用来创建一个指定形状(shape).数据类 ...

  10. 关于STM32 Flash的一些问题

    注:本人感觉是STM32 Flash本身的问题. 最近做STM32的远程升级,保存到Flash里面,用于记录更新状态的信息总是无故的清理掉 最终测试发现 STM32的 Flash 擦除操作 并不一定会 ...