java char short区别_java 彻底理解 byte char short int float long double

5cfb89fd3d4d1a3c5da59003c44798f1.png

遇到过很多关于 数值类型范围的问题了,在这做一个总结,我们可以从多方面理解不同数值类型的所能表示的数值范围

在这里我们只谈论 java中的数值类型

首先说byte:

这段是摘自jdk中 Byte.java中的源代码

ff8e2216eaf803eb981cbd826f091570.png

从这里可以看出 byte的取值范围:-128 --- 127;

从计算机组成原理的角度可以解释:byte在计算机中是占8个字节的 而且byte 是有符号整形 用二进制表示时候最高位为符号位 0代表正数 1代表负数。

最大值:127      0111 1111 即2的7次方减去1;

最小值:-128 这个数字曾经困扰我很久, 要知道正数在计算机中是以原码形式存在的,负数在计算机中是以其补码形式存在的,那么一个负数的补码是怎么计算的呢? 就是负数的绝对值的原码转为二进制再按位取反后加1,

下边这个10和-10为例来介绍的 :10原码:0000 1010   它在计算机中的存储就是 0000 1010, 那么-10呢? 按照前面说的 算除其绝对值为10,转为二进制 0000 1010 按位取反 1111 0101 再加1后:1111 0110,此为-10补码 ,好的,计算机中的1111 0110就是代表-10了。

我们来看 -128  绝对值128的二进制表示:1000 0000 按位取反 0111 1111 加1后:1000 0000,也就是说 -128在计算机中的表示就是 1000 0000 了, 再来看一下-129 在计算机中的表示,绝对值129的范围已经超出了了byte的位数。

再有还可以通过

97ec85e56e21f0cd1768bd16ffe57ab3.png

输出Byte的最大值和最小值。

综上所述 byte的取值范围只能是:-128 -- 127了  即 负的2的7次方到2的7次方减去1。

相应的 short 作为16位有符号整形,int作为32位有符号整形,  long 作为64位有符号整形 都可以如上计算出 取值范围

char作为16位无符号整形 其范围为 0 -- 2的15次方 这无可争议

摘自 Character.java中的源代码:

723ade9beb364cda185e723638c64710.png

float作为32位的浮点型:

摘自Float.java源码:

fd9de89d0328ad6d2030a3d8ca0bf492.png

double 作为64为浮点型

Double.java源码:

177fa490e084e062637a792d4b53a69b.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/306988.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

程序员过关斩将--从未停止过的系统架构设计步伐

“首先,这篇文章肯定会得罪一些人“其次,此文只代表我个人的意见,仅供参考从分层说起谈到系统架构的分层和系统领域边界的划分,每个架构师,每个技术经理,甚至每个程序员都有自己的一套想法。无论是怎么样的…

BCVP第2期:项目已完成升级.NET5.0

(是时候拿出来这种图了)1开心的锣鼓想必这两天最热闹的几个词语,就是c#9.0、.net5.0还有conf大会了吧,当然还有大一统。其实,早在2019年年中,就已经引入了.NET5.0了,然后从2020-03-16开始,就一直在说.NET5.…

如何在ASP.NetCore增加文件上传大小

关注架构师高级俱乐部开启架构之路不定期福利发放哦~架构师高级俱乐部读完需要7分钟速读仅需 3 分钟/ 如何在核心中增加文件 ASP.NET 大小 /从ASP.NET 2.0开始最大请求正文大小限制为30MB (28.6 MiB)。在正常情况下,无需增加 HTTP 请求 body …

java完全二叉树最小堆_Java实现最小堆一

Java实现最小堆一堆是一种经过排序的完全二叉树,其中任一非终端节点的数据值均不大于(或不小于)其左孩子和右孩子节点的值。最大堆和最小堆是二叉堆的两种形式。最大堆:根结点的键值是所有堆结点键值中最大者。最小堆:根结点的键值是所有堆结…

一个 Task 不够,又来一个 ValueTask ,真的学懵了!

一:背景 1. 讲故事前几天在项目中用 MemoryStream 的时候意外发现 ReadAsync 方法多了一个返回 ValueTask 的重载,真是日了狗了,一个 Task 已经够学了,又来一个 ValueTask,晕,方法签名如下:publ…

Magicodes.IE 3.0重磅设计畅谈

Magicodes.IE 3.0重磅设计畅谈总体设计图Magicodes.IE导入导出通用库,支持Dto导入导出、模板导出、花式导出以及动态导出,支持Excel、Csv、Word、Pdf和Html。IE在去年年底重构一次之后,经过这么长时间的迭代,又迎来了瓶颈。根据本…

php引用类,thinkphp引用类的使用

比如发送邮件类phpmailer1.将核心文件放入ORG目录下2.在使用的地方,引入这个类文件如何引入呢?import(.ORG.phpmailer);这个表示引入当前项目中的ORG中的phpmailer.class.php文件3.引入之后就可以使用文件中的类了public function sendEmail() {import(.…

Net5 已经来临,让我来送你一个成功

没错,那就是“下载成功”。现在,已经可以急速下载.Net5 docker 镜像 .Net 5 进行今天已经正式发布,想必各位已经通过各种渠道了解到了此次发布的所有内容。并且也都体会到了这次凑成三连的金 scott 是什么效果(啊哈,三…

推荐几款强大流行的BI系统

高级架构师俱乐部 读完需要2分钟速读仅需 1 分钟企业在日常运营过程中,需要根据公司实时经营数据来做未来决测或者发现经营中的问题,在此过程中离不开对数据的分析,而平常利用 excel 等方式极大的提高了领导层快速做出决测的成本&#xff0c…

php 4位数字不足补零,php实现数字不足补0的方法

php实现数字不足补0的方法发布时间:2020-08-28 09:51:06来源:亿速云阅读:100作者:小新这篇文章将为大家详细讲解有关php实现数字不足补0的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大…

起点低,怎么破?

职场&认知洞察 丨 作者 / findyi这是findyi公众号分享的第91篇原创文章洋友问:“洋哥,我北漂多年,专科毕业从农村出来,感觉做什么都不顺,我该怎么办”。和他聊了聊,他毕业后就来北京打工,尝…

C# Span 源码解读和应用实践

一:背景 1. 讲故事这两天工作上太忙没有及时持续的文章产出,和大家说声抱歉,前几天群里一个朋友在问什么时候可以产出 Span 的下一篇,哈哈,这就来啦!读过上一篇的朋友应该都知道 Span 统一了 .NET 程序 栈 …

[C#.NET 拾遗补漏]12:死锁和活锁的发生及避免

多线程编程时,如果涉及同时读写共享数据,就要格外小心。如果共享数据是独占资源,则要对共享数据的读写进行排它访问,最简单的方式就是加锁。锁也不能随便用,否则可能会造成死锁和活锁。本文将通过示例详细讲解死锁和活…

64岁Python之父加入微软 | 谁说大龄程序员无出路

喜欢就关注我们吧!现年 64 岁的 Python 创始人 Guido van Rossum 退休一年后再度复出,今天宣布已加入微软开发者部门 (Developer Division).我觉得退休生活乏味又无趣,因此已加入微软开发者部门。做什么工作?选择太多了&#xff0…

JAVA中的GridView每一个赋值,在ASP.NET 2.0中操作数据之六十二:GridView批量更新数据...

导言:在前面的教程,我们对数据访问层进行扩展以支持数据库事务.数据库事务确保一系列的操作要么都成功,要么都失败。本文我们将注意力转到创建一个批更新数据界面.在本文,我们将创建一个GridView控件,里面的每一行记录…

微软发布VS Code Jupyter插件!不止Python!多语言的Jupyter Notebook支持来了!

北京时间 2020 年 11 月 12 日,微软发布了全新的 VS Code Jupyter 插件!Jupyter 插件将 Jupyter Notebook 的功能引入 VS Code,并且将会支持更多语言和使用场景。Jupyter Notebook 支持创建和共享包含代码、方程式、文本和可视化内容的文档&a…

windows安全模式_鲁大师正式挂牌上市,使用鲁大师如何开启笔记本电脑全面节能模式...

10月10日消息,今天360旗下的鲁大师正式挂牌上市。上市之后,鲁大师的盘中涨幅一度扩大至100%,鲁大师的市值也一度达到了14亿港元。过去三个财年,鲁大师的营业收入分别为6981.2万、1.23亿和3.20亿人民币。简单介绍360,36…

跟我一起学Redis之Redis事务简单了解一下

前言关系数据库中的事务,小伙伴们应该是不陌生了,不管是在开发还是在面试过程中,总有两个问题逃不掉:•说说事务的特性;•事务隔离级别是怎么一回事?事务处理不好,数据就可能不准确,…

groovy 字符串截取最后一个_Python入门高级教程--Python 字符串

Python 字符串字符串是 Python 中最常用的数据类型。我们可以使用引号(或")来创建字符串。创建字符串很简单,只要为变量分配一个值即可。例如:var1 Hello World!var2 "Python Runoob"Python 访问字符串中的值Python 不支持单字符类型&a…

java面试题_阿里大厂流出的数百道 Java 经典面试题

BAT 常问的 Java基础39道常见面试题1.八种基本数据类型的大小,以及他们的封装类2.引用数据类型3.Switch能否用string做参数4.equals与的区别5.自动装箱,常量池6.Object有哪些公用方法7.Java的四种引用,强弱软虚,用到的场景8.Hashc…