java基本数据类型所占长度_java基本数据类型长度详解
java基本数据类型
基础知识
机器数和真值
机器数
一个数在计算机中的二进制表示形式,叫做这个数的机器数
机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1
例如:
dec +3 = bit 00000011
dec -3 = bit 10000011
真值
将带符号位的机器数对应的真正数值称为机器数的真值
例如:
bit 00000011 真值 bit + 0000011 真值 dec +3(最高位代表符号位)
bit 10000011 真值 bit - 0000011 真值 dec -3(最高位代表符号位)
源码,返码,补码
机器存储一个具体数字的编码方式
源码
原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值
例如:
dec +3 源码 bit 00000011 = bit +|0000011| = bit 00000011 = +|3| = dec +3
dec -3 源码 bit 10000011 = bit -|0000011| = bit 10000011 = -|3| = dec -3
反码
正数的反码是其本身
负数的反码是在其原码的基础上, 符号位不变,其余各个位取反
例如:
dec -3 源码 bit 10000011 符号位布标 bit -0000011 取反 bit -1111100 = bit 11111100
补码
负数以补码的形式存储在计算机中
正数的补码就是其本身
负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
计算规则: 第一步取x的绝对值,第二步计算x的二进制,第三步对二进制取反,最后在加1
例如:
dec -3 源码 bit 10000011 符号位不变 bit -0000011 取反 bit - 1111100 +1 = bit 11111101
dec -3 = |dec -3| = dec 3 = bit 00000011 取反 bit 11111100 +1 bit 11111101
Java基础数据类型字节数
1 bit (一个字节) : 0/1 二进制数据
1 byte = 8 bit
1 Byte = 1 byte = 8 bit
1 Short = 2 byte = 16 bit
1 Integer = 4 byte = 32 bit
1 Long = 8 byte = 64 bit
1 Character = 2 byte = 16 bit
1 Float = 4 byte = 32 bit
1 Double = 8 byte = 64 bit
Boolean = false(没有)
基础数据类型范围
byte
byte:-128 ~ 127 = [10000000 ~ 00000001]
-128: |128| = bit 10000000 = bit 01111111 = bit 1000000
127: bit 011111111
Short
Short:
[0x8000 ~ 0x7fff] = [-215 ~ 215] = [-32768 ~ 32767]
[1000000000000000 ~ 111111111111111]
Integer
Integer:
[0x80000000 ~ 0x7fffffff] = [-2^31 ~ 2^31] = [-2147483648 ~ 2147483647] = 21亿
[10000000000000000000000000000000 ~ 1111111111111111111111111111111]
Long
[0x8000000000000000L ~ 0x7fffffffffffffffL] = [-263 ~ 263]
[-9223372036854775808 ~ 9,223,372,036,854,775,807] = 10^18
Character
‘\u0000’ ~ ‘\uffff’
常见操作
byte转换成int
&0xff
原因:
public static void main(String[] args) {
Byte b1 = 1;//00000001
Byte b2 = -1;//按位取反+1:00000001 -> 11111110 -> 11111111
System.out.println(b1);//00000000-00000000-00000000-00000001
System.out.println(b2);//11111111-11111111-11111111-11111111
// 因为byte只有8位,转换int,只保留8位,所以与上 0xff[00000000-00000000-00000000-11111111]
// 保留了后8位
System.out.println((int)b1 & 0xff);//00000000-00000000-00000000-00000001
System.out.println((int)b2 & 0xff);//00000000-00000000-00000000-11111111
}
java基本数据类型所占长度_java基本数据类型长度详解相关推荐
- java所使用的字符集是_Java常用字符集编码详解
Java常用字符集编码详解 Web开发的时候经常会遇到一些字符编码的错误,如页面乱码等问题,所以有必要需对字符编码有所了解,以下是Ricki收集的一些资料(可能不是很全,但希望对你有所帮助) Java ...
- java中实现具有传递性吗_Java中volatile关键字详解,jvm内存模型,原子性、可见性、有序性...
一.Java内存模型 想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的. Java内存模型规定了所有的变量都存储在主内存中.每条线程中还有自己的工作内存,线程的工作 ...
- filter java 是单例的吗_JAVA 设计模式之 单例模式详解
单例模式:(Singleton Pattern)是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点.单例模式是创建型模式.单例模式在现实生活中应用也非常广泛. 在 J2EE 标准中,S ...
- java过滤器filter过滤某个包_Java过滤器Filter使用详解
过滤器 过滤器是处于客户端与服务器资源文件之间的一道过滤网,在访问资源文件之前,通过一系列的过滤器对请求进行修改.判断等,把不符合规则的请求在中途拦截或修改.也可以对响应进行过滤,拦截或修改响应. 如 ...
- java线程池的工作原理_JAVA线程池原理详解一
线程池的优点 1.线程是稀缺资源,使用线程池可以减少创建和销毁线程的次数,每个工作线程都可以重复使用. 2.可以根据系统的承受能力,调整线程池中工作线程的数量,防止因为消耗过多内存导致服务器崩溃. 线 ...
- WEB后台--邮件和短信业务实现(包括Java一键实现、封装和异步)以及原理详解
本来就打算针对一些固定的特别点的业务(QQ与网易邮件.拦截设计.短信.定时器等等)来进行记录以及解析原理,这些会比较零散记录在JavaWeb的分类里面,感兴趣的童鞋可以去看下. 有人问为什么要邮件短信 ...
- Java构造和解析Json数据的两种方法详解一
在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...
- Java中创建String的两道面试题及详解
转载自 Java中创建String的两道面试题及详解 我们知道创建一个String类型的变量一般有以下两种方法: String str1 = "abcd";String str2 ...
- java函数式编程归约reduce概念原理 stream reduce方法详解 reduce三个参数的reduce方法如何使用
java函数式编程归约reduce概念原理 stream reduce方法详解 reduce三个参数的reduce方法如何使用
- java显示参数,Java中的隐式参数和显示参数实例详解
在学习java的过程中,我们会遇到许多的问题.下面我们就来看看什么是隐式参数和显示参数. 显式参数,就是平时见到的在方法名括号中间的参数,就是所谓能看得见的参数www.cppcns.com. 隐式参数 ...
最新文章
- 解决ASP网页乱码的问题
- mysql 连接数的最大数
- css怎么把横向菜单变纵向_CSS 布局模式 + 居中布局
- xss 表单劫持(from通用明文记录)
- linux嵌入式开发箱跑马灯,跑马灯实验(STM32F4开发板)
- Windows下svn服务器安装
- Matlab求解空间曲线的切线和法平面
- 字节 和 位 的关系
- 【实战】Django从零搭建个人网站
- APView500电能质量在线监测装置 谐波分析 电压不平衡
- Machine Learning读书会 面试算法讲座 创业活动 算法班 历届汇总
- 智能路由器要成功 该怎样修炼穿墙术?
- ​万邦医药在创业板过会:上半年收入约1亿元,陶春蕾母子为实控人​
- 超轻量级通用人脸检测模型
- CentOS 7.9 Xfce桌面安装中文输入法
- 7.26 3 教育的长久回报期
- python位运算用途_Python 位运算符与位运算
- 红帽Rhel7.6操作系统更换成Centos7.6的操作系统
- 手写Promisify函数
- 双系统苹果Mac笔记本如何切换windows系统?
热门文章
- aix磁盘挂载到linux,AIX下文件系统挂载点相互调换方案
- php通知多有人,PHP通知抑制;只有某些情况/方法
- python监控服务器信息,Python监控服务器实现邮件微信报警
- 什么是中国1号信令?
- 【渝粤教育】电大中专电子商务网站建设与维护 (27)作业 题库
- 【渝粤题库】陕西师范大学400006 公共关系学 作业(专升本)
- 5G三兄弟NB-IoT排老几?NB-IoT介绍
- nginx php 不能连接mysql_nginx配置php环境,并测试PHP是否可以连接mysql
- linux 我的世界 跨平台联机,我的世界跨平台联机 PC、手机等平台数据互通
- settimeout怎么用_怎么实现一个3d翻书效果