今天做到了个非常有意思的题目,是关于int最大最小值。用sizeof(int)查寻,返回四个字节,4个字节计算应该是4*8=32位,其中一位为符号位,且最高为不能为2所以应该减一,2^31-1=2147483648-1=2147483647同理负数也应存在-2147483647,但是当+2147483647+1此时最高为进一也能表示所以,负数最小值应该为-2147483648。

但是同样的我用sizeof(long int)去查询字节的时候竟然也是4字节,

去网上大神给出了以下结论

可用如sizeof(char),sizeof(char*)等得出

32位编译器:

char :1个字节

char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)

short int : 2个字节

int: 4个字节

unsigned int : 4个字节

float: 4个字节

double: 8个字节

long: 4个字节

long long: 8个字节

unsigned long: 4个字节

64位编译器:

char :1个字节

char*(即指针变量): 8个字节

short int : 2个字节

int: 4个字节

unsigned int : 4个字节

float: 4个字节

double: 8个字节

long: 8个字节

long long: 8个字节

unsigned long: 8个字节

然而有去查编译器是否存在其他关系,是否64位操作系统可以运行32位编译器,也有 64位系统下编译器是32位的说法,后来又看到了Windows的64位,long是4byte , Linux下的64位,long是8byt,后又看到了字节数没变,变得是位数,48与416但是难道int跟long int不是一台电脑跑出来的,一个是48一个是416,感觉闹了笑话。决定字节做实验,发现

#include<iostream>
#include<cmath>
#include<iomanip>
#include<limits.h>
using namespace std;
int main()
{
long int a,b;
long int c;
long long int d;
cin>>a>>b;
c=d=a+b;
cout<<c<<endl<<d;
return 0;
}

发现无论跑多大的数都是一样的,莫不是long long int跟long int 和int一样大,后来检查程序发现c=d=a+b;将a+b的值赋给d,再将d的值赋给c不一样就鬼了。

于是换程序再跑

   #include<iostream>
#include<cmath>
#include<iomanip>
#include<limits.h>
using namespace std;
int main()
{
long int a,b;
long int c;
long long int d;
int e;
cin>>a>>b;
c=a+b;
d=a+b;
e=a+b;
cout<<c<<endl<<d<<endl<<e;
return 0;
}

跑出来cde的值都一样,又想起是不是long int 计算的结果值事long int。在换程序再跑。

#include<iostream>
#include<cmath>
#include<iomanip>
#include<limits.h>
using namespace std;
int main()
{
long int a,b;
long int c;
long long int d;
int e;
cin>>a>>b;
c=a+b;
d=a+b;
e=a+b;
cout<<c<<endl<<d<<endl<<e;
return 0;
}

输入2147483647 2147483647

输出-2

输入4294967294

输出-2

在尝试跑各种数字,发现大于2147483647 时c,e输出是一样的数字,其余的输出的是c,d,e都一样。

到目前从开始写这篇文章,到现在过去了快两个小时。查了部分资料,后来发现书上也给了资料说上述大神回复,跟编译器的位数有关,而网络上也分说不一,暂时以编译器mingw32是32为编译器收尾。而对于存储的位数,计算机的位数不要相信,课本不要相信,回帖也不要相信,应该用sizeof(long int)通过程序论证了sizeof的必然正确性,否定了某回帖的字节数不变位数改变的论述。

想去下一个visual studio x64版本去论证64位系统下编译器为32位的可能性。但是苦于在老家没有无线网络,只有手机热点,2.5G的大小有点吃不消,所以暂且保留问题!!!暂且保留问题!!!暂且保留问题!!!暂且保留问题!!!暂且保留问题!!!暂且保留问题!!!暂且保留问题!!!暂且保留问题!!!暂且保留问题!!!暂且保留问题!!!暂且保留问题!!!暂且保留问题!!!暂且保留问题!!!

2019年2月5日训练日记关于int字节数,long int 字节数的讨论的更多相关文章

  1. Visual Studio 2019 发布活动 - 2019 年 4 月 2 日

    Visual Studio 2019 发布活动 2019 年 4 月 2 日,星期二 | 上午 9:00 (PT) 围观: https://visualstudio.microsoft.com/zh- ...

  2. 2019年5月1日起安卓应用应基于API 26开发,那么API等级是啥?

    2019年5月1日起安卓应用应基于API 26开发,那么API等级是啥? 转 https://www.ithome.com/html/android/372234.htm   据泰尔终端实验室公众微信 ...

  3. 2019年3月2日-小雨.md

    2019年3月2日, 星期六 开学已经一周了,时间好像限制了自己进步的脚步,一个人的精力有限,想做好方方面面实在是太难了,有很多事儿最后都没做的完美.相反,自己应该放下繁琐的包袱,简简单单的干一件事儿 ...

  4. 2019年5月22日 AY 程序员调侃语录

    我是AY,杨洋,做wpf开发的,最近得了一种病,程序员患得患失综合征.同事说,我年纪在变大,技术跟不上.业余之间,我原创了写了一些语录,给大家中午休息,累疲惫的时候,开心放松下. 1.活着的每一天都无 ...

  5. 【2019年05月20日】A股滚动市盈率PE历史新低排名

    2010年01月01日 到 2019年05月20日 之间,滚动市盈率历史新低排名. 上市三年以上的公司, 2019年05月20日市盈率在300以下的公司. 1 - 阳光照明(SH600261) - 历 ...

  6. SPSS 2019年10月24日 今日学习总结

    2019年10月24日今日课上内容1.SPSS掌握基于键值的一对多合并2.掌握重构数据3.掌握汇总功能 内容: 1.基于键值的一对多合并 合并文件 添加变量 合并方法:基于键值的一对多合并 变量 2. ...

  7. 批量添加删除Windows server DNS服务 恶意域名 * A记录 指向 127.0.0.1(2019年6月5日更新)

    下载链接:https://pan.baidu.com/s/1OUHyvnIfXYF0PdiT-VRyHw  密码:7gjj 注意!本解决方案在本地的Windows server服务器上把恶意域名指向1 ...

  8. 34.ITerm配置使用——2019年12月24日

    2019年12月23日15:17:36 ITerm使用教程 1.快键键配置 设置方法 设置方法如下: (1)选择 Preference 进入偏好设置: (2)选择 Profiles > Keys ...

  9. 36.React基础介绍——2019年12月24日

    2019年12月24日16:47:12 2019年10月25日11:24:29 主要介绍react入门知识. 1.jsx语法介绍 1.1 介绍 jsx语法是一种类似于html标签的语法,它的作用相当于 ...

随机推荐

  1. 给Jekyll静态博客添加ScrollSpy博文大纲目录

    目录 内置TOC 添加ScrollSpy博文menu Scrollnav.js 使用方法❤ 最近又双叒把博客模板换成了Jekyll,Jekyll无论上手难度和修改难度都是目前所见流行模板中最低的(以无 ...

  2. Java第三十二天,IO操作(续集),读写缓冲区的使用

    缓冲区出现原因: Java对IO的读写都是经过中间途经--JVM虚拟机进行管理的,JVM调用OS操作系统继续完成IO操作.如此一来,整个过程耗费了不小的资源,为了尽量减少这样重复的周期性操作,出现了缓 ...

  3. python3(二十二) oop

    """ 面向对象编程 """ __author__ = 'shaozhiqi' # 面向对象的程序设计把计算机程序视为一组对象的集合,而每个 ...

  4. 使用 RestTemplate 进行第三方Rest服务调用

    1. 前言 RestTemplate 是 Spring 提供的一个调用 Restful 服务的抽象层,它简化的同 Restful 服务的通信方式,隐藏了不必要的一些细节,让我们更加优雅地在应用中调用 ...

  5. GeiGebra指令

  6. Linux服务器压力测试总结(CPU、Memory、IO等)

    测试工具:sysbench.memtester.htop 1.htop安装使用 yum install ncurses-devel # 安装依赖包 tar zxvf htop-2.2.0.tar.gz ...

  7. Hugo博客搭建

    HUGO + Github + Github Action持续集成部署个人博客 HUGO本地环境 首先在HUGO的官网下载Hugo的Windows安装包,然后将路径添加到环境变量即可. step1:下 ...

  8. Java中常用的七个阻塞队列第二篇DelayQueue源码介绍

    Java中常用的七个阻塞队列第二篇DelayQueue源码介绍 通过前面两篇文章,我们对队列有了了解及已经认识了常用阻塞队列中的三个了.本篇我们继续介绍剩下的几个队列. 本文主要内容:通过源码学习De ...

  9. 1. ajax递归并发处理

    在某些情况下可能会需要循环ajax请求,可以利用递归发送 function recursion( index,array ) { if ( index < array.length ) { // ...

  10. C# WCF 之优势及特性

    Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台. 整合了原有的windows通讯的 . ...