#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. sparkstreaming写入hbase表中总结

    执行spark代码插入数据到hbase表中去的时候,遇到的错误 1. 缺少hadoop-mapreduce-client-core-2.5.1.jar包 错误:java.lang.ClassNotFo ...

  2. 网络文件系统-NFS

    1. 什么是NFS NFS是 Network File System 的缩写,即网络文件系统.一种使用于分散式文件系统的协议,有Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的 ...

  3. 基于PXE网络启动的Linux系统自动化安装

      在实际工作中,传统纯手动安装操作系统的方式是有一定的局限性的,例如:现在大多数的服务器都不自带光驱,若要安装系统需要外接光驱插入光盘,整个安装过程中需要人工交互确认,手动设置每一个安装设置项,人必 ...

  4. blockingqueue.h

    #include <mutex> #include <condition_variable> #include <deque> template <typen ...

  5. 网络测试工具--Iperf、Netperf 、MZ

    网络性能测量的五项指标 可用性(availability) 响应时间(response time) 网络利用率(network utilization) 网络吞吐量(network throughpu ...

  6. 小程序开发二三事--数据请求head的设置

    wx.request(OBJECT) 发起请求的方法有很多,默认为 GET,有效值:OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT: 一般在 ...

  7. Let Start

      A free timing software with very small memory occupation. This tool is a pure green convenient off ...

  8. Wooden Signs Gym - 101128E (DP)

    Problem E: Wooden Signs \[ Time Limit: 1 s \quad Memory Limit: 256 MiB \] 题意 给出一个\(n\),接下来\(n+1\)个数, ...

  9. vue基于iview树状表格,封装完善

    先安装iview后在使用 完善按钮不显示问题 ,当children过多时,点击不动问题等 封装 <template> <div :style="{width:tableWi ...

  10. CVE-2017-7494复现 Samba远程代码执行

    Samba是在Linux和Unix系统上实现Smb协议的一个免费软件,由服务器及客户端程序构成,Samba服务对应的TCP端口有139.445等.Smb一般作为文件共享服务器,专门提供Linux与Wi ...