java基本数据类型长度详解
java基本数据类型
基础知识
参考资料:http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html
机器数和真值
机器数
一个数在计算机中的二进制表示形式,叫做这个数的机器数
机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为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;//00000001Byte b2 = -1;//按位取反+1:00000001 -> 11111110 -> 11111111System.out.println(b1);//00000000-00000000-00000000-00000001System.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-00000001System.out.println((int)b2 & 0xff);//00000000-00000000-00000000-11111111}
java基本数据类型长度详解相关推荐
- java基本数据类型所占长度_java基本数据类型长度详解
java基本数据类型 基础知识 机器数和真值 机器数 一个数在计算机中的二进制表示形式,叫做这个数的机器数 机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1 例如: dec ...
- Java引用数据类型String详解
Java引用数据类型(String) 引用数据类型概述 引用数据类型与基本数据类型的差别(举例说明) 引用数据类型概述 说到引用数据类型,那么何为引用数据类型? 引用类型,都可以用null值作为值,也 ...
- Redis五种基本数据类型底层详解(原理篇)
Redis五种基本数据类型底层详解 详细介绍Redis用到的数据结构 简单动态字符串 SDS和C字符串的区别 总结 链表 字典 哈希表 字典 哈希算法 解决键冲突 rehash(重点) 渐进式reha ...
- 【Redis】数据类型的详解与使用场景【原创】
文章目录 Redis数据类型的详解与使用场景 1-1 NoSQL的概述 1. 概述 2. 为什么需要NoSQL 3. NoSQL产品 4. 分类 5. 特点 2-1 Redis的概述 1. 概述 2. ...
- Java单元测试之JUnit4详解
2019独角兽企业重金招聘Python工程师标准>>> Java单元测试之JUnit4详解 与JUnit3不同,JUnit4通过注解的方式来识别测试方法.目前支持的主要注解有: @B ...
- java定时任务框架elasticjob详解
这篇文章主要介绍了java定时任务框架elasticjob详解,Elastic-Job是ddframe中dd-job的作业模块中分离出来的分布式弹性作业框架.该项目基于成熟的开源产品Quartz和Zo ...
- Java基础学习总结(24)——Java单元测试之JUnit4详解
Java单元测试之JUnit4详解 与JUnit3不同,JUnit4通过注解的方式来识别测试方法.目前支持的主要注解有: @BeforeClass 全局只会执行一次,而且是第一个运行 @Before ...
- java 8 新功能详解_Java 8的8个新功能
java 8 新功能详解 注意:确保还检查了我们的详细教程Java 8 Features – ULTIMATE Guide . Jdk 1.8(又名Java 8)今天发布,这意味着它的通用发布版本已经 ...
- JAVA的StringBuffer类详解
JAVA的StringBuffer类详解 StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer ...
最新文章
- 7个问题,直击管理的本质
- C# http post 地址
- 减肥登Cell封面上热搜:华东师大热疗探索新突破,这一波网友们想象力大开
- azkaban工作流调度器及相关工具对比
- 百度地图与HT for Web结合的GIS网络拓扑应用
- SSM中实现CRUD并配置输出sql语句
- java实现下载压缩文件_java实现文件压缩下载----压缩下载zip
- android开发(50) Android透明状态栏。适用于 4.4 以上及 5.0以上设备
- Web前端技术历经的洗礼和蜕变
- lvm讲解与磁盘挂载问题排除
- pytorch可视化
- python链表的实例_python数据结构链表之单向链表(实例讲解)
- postman下载使用教程
- Maya2018基础(二)展UV
- Error: The method ‘DioHttpHeaders.add‘ has fewer named arguments than those of overridden method
- 验证下《指数基金投资指南》中的策略是否有效
- Express Session的使用
- 微信小程序自带地图_微信小程序之地图使用
- 网络直播课程:神马是敏捷?(直播时间:2014-7-14 20:00-21:00)
- Cisco路由器重置enable密码步骤
热门文章
- 如何自学游戏引擎的开发
- linux mdadm 创建raid,Linux下用mdadm命令创建软raid5
- android最新面试题及答案,分享两道阿里P7究极难度算法题
- 本科计算机自学路径,计算机自学考试本科有哪些选择,区别在哪?
- 旅行社建立电商系统需要哪些功能?
- opencv C++ SVM模型训练与分类实现
- Intellij IDEA 默认打开上次项目设置
- 51nod 1414 冰雕(思维+暴力)
- openEuler 20.03 LTS SP1发行版本DRBD初体验
- 从 0 到 1000+ 台服务器监控的构建之路。