Java中基本类型及类型转换

Java基本数据的类型转换 当进行强制类型转换时,类似于把一个大瓶子里面的水倒入一个小瓶子,如果大瓶子里面的水不多还好,如果大瓶子里面的水很多,将会引起溢出,从而造成数据丢失。注意:当试图强制把表数范围大的类型转换为表示范围小的类型时,必须格外小心,因为非常容易引起信息丢失。如果希望上面自动转换中,箭头右边的类型转换成左边的类型,则必须进行强制类型转换。Java支持自动类型转换的类型如下所示,左边的数值类型可以自动类型转换成箭头右边的数值类型。1)所有的byte类型 ,short类型和char类型将被提升到int类型。 阅读详情

一. Java中的数据基本类型

     基本数据类型就是Java语言的一部分,分别为:

  1. 整型:byte, short, int, long
  2. 字符型:char
  3. 浮点型:float, double
  4. 布尔型:boolean

在详细介绍之前,先科普一下,Java中最小的计算单元为字节,1字节=8位(bit)。

1. 整型

Java中整型数据属于有符号数,即第一个bit位为0表示正整数,第一个bit位为1表示负整数。在计算机中负数由补码进行表示,那么补码如何计算呢?

补码=源码取反 + 1;

如:

22,在计算机中的表示为00010110,

-22,取反:11101001,加1:11101010

注:Java各整数类型有固定的表示范围和字段长度,不会收到不同操作系统的影响,这点确保了java程序的可移植性。且整型的数据默认为int型。

byte

byte属于Java中的整型,长度为1字节8bit,取值10000000(-128)到 01111111(127),变量初始化默认值为0,包装类Byte

short

short属于Java中的整型,长度为2字节16bit,取值10000000 00000000(-32768)到 01111111 11111111(32767),变量初始化默认值为0,包装类Short

int

int属于Java中的整型,长度为4字节32bit,取值-2^31 (-2,147,483,648)到 2^31-1(2,147,483,647),变量初始化默认值为0,包装类Integer

long

long属于Java中的整型,长度为8字节64bit,取值-2^63 (-9,223,372,036,854,775,808‬)到 2^63-1(9,223,372,036,854,775,8087),long类型常量用后缀L表示即66L,变量初始化默认值为0或者0L,包装类为Long

注意:声明Long型变量,赋值时后面必须加L或者l

整型数据的表示形式
十进制:123
八进制:必须以0开头 012
十六进制:必须以0x或者0X开头 0x88

2. 浮点型

Java中浮点型数据无法由二进制直接表示,而是一种对于实数的近似数据表示法,它遵循IEEE 754标准

float

float属于Java中的浮点型,也叫单精度浮点型,长度为4字节32bit,变量初始化默认值0.0f,包装类Float

1. float结构

包含三部分:符号位、指数位、尾数位

 符号位(S)指数位(E)尾数位(M)
长度1bit8bit23bit
说明0表示正数,1表示负数格式为在这里插入图片描述,E值范围:(0,255),指数位取值:(在这里插入图片描述,在这里插入图片描述形式为1.M或0.M。其中当E=0时,取1.M,称为正规形式,当E!= 0时,取0.M,称为非正规形式

2. float取值

正规形式:

非正规形式:

根据上面公式很容易计算出float的取值范围为:


(最小值,当符号位S取1,指数位E取255)


(最大值,当符号位S取0,指数位E取255)

能取到其间的近似数据。

注意:根据指数位和尾数位的取值不同,还有很多特殊情况,如NAN,正无穷,负无穷,但平时基本不会用到,这里不再深入;同时由于是近似值,因此无法表示金额,表示金额建议使用BigDecimal

double

double属于Java中的浮点型,也叫双精度浮点型,长度为8字节64bit,变量初始化默认值0.0d,包装类Double

1. double结构

包含三部分:符号位、指数位、尾数位

 符号位(S)指数位(E)尾数位(M)
长度1bit11bit52bit
说明0表示正数,1表示负数格式为,E值范围:(0,2047),指数位取值:(,)形式为1.M或0.M。其中当E=0时,取1.M,称为正规形式,当E!= 0时,取0.M,称为非正规形式

2. double取值

正规形式:

非正规形式:

根据上面公式很容易计算出double的取值范围为:


(最小值,当符号位S取1,指数位E取2047)


(最大值,当符号位S取0,指数位E取2047)

能取到其间的近似数据。

注意:根据指数位和尾数位的取值不同,还有很多特殊情况,如NAN,正无穷,负无穷,但平时基本不会用到,这里不再深入;同时由于是近似值,因此无法表示金额,表示金额建议使用BigDecimal

注:在Java的浮点型数据的默认类型为double。

3. 字符型

char

char属于java中的字符型,占2字节16bit,可以赋值单字符以及整型数值, 变量初始化无默认值,包装类Character。

如:

char a = 'a';

char a = '中';

char a = 12; // 取值范围0~65536,因为char类型在ASCII字符编码中,有对应的数值,可直接进行数值间的算术运算,输出字符表中对应的字符。

注:JAVA字符采用Unicode编码,一个字符占用两个字节;字符常量为单引号括起来的单个字符,例如char Char=‘a’;
也可以用十六进制来表示字符常量,例如char Char=’\u0062’;

4. 布尔型

boolean

在JVM中并没有提供boolean专用的字节码指令,而boolean类型数据在经过编译后在JVM中会通过int类型来表示,此时boolean数据4字节32位,而boolean数组将会被编码成Java虚拟机的byte数组,此时每个boolean数据1字节占8bit.

--Java虚拟机规范

仅有两个值true, false,变量初始化默认值false

二. 基本类型的转换运算

         当把一种基本数据类型变量的值赋给另一个基本数据类型变量时,就涉及到了数据转换(不包括逻辑类型)。这些数据类型按精度从低到高排序为:

         byte < short < char < int < long < float < double 字节数分别为(1.2.2.4.8.4.8)

        当把精度低的变量赋值为精度高的变量时,系统会自动完成数据类型转换,当把精度高的数据赋值给精度低的变量时,应该使用类型转换运算即强制类型转换。

        例如:

        int a = 16; long b = a; 此时系统会自动完成数据转换。

        long d = 16L; int c = (int) d; 使用类型转换运算(即强制类型转换)。

 

         

反相器(inverter)和缓冲器(buffer)---附加与非门原理图 下面是对反相器(Inverter)和缓冲器(Buffer)从面积、驱动能力、时序等多个角度的详细对比,列出的是一般情况下的比较,具体情况可能会受到工艺节点、设计库和特定设计要求的影响。缓冲器(Buffer)是数字电路中常见的逻辑门之一,用于增强信号的驱动能力,而不改变信号的逻辑状态。如下图所示的CMOS反相器,由一个NMOS和PMOS组成,栅端gate相连作为输入端Vin,漏端相连作为输出端Vout,NMOS的源端接地,PMOS的源端接电源VDD.与反相器不同,缓冲器的输出与输入保持相同的逻辑状态。 阅读详情

相关推荐

L298N电机驱动模块的接线使用与代码实现

#include "iostm8s208mb.h" #define u8 uint8_t #define u16 uint16_t #define u32 uint32_t typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned long uint32_t; // 关于LED灯的宏定义 #define LED2 PI_ODR_ODR2 //输出量 #define LE

Clichong 13万+

java long取反_【Java】第四章 操作符

1 算数操作符(1) 基本算数操作符+ - * /public class HelloWorld {public static void main(String[] args) {int i = 10;int j = 5;int a = i+j;int b = i - j;int c = i*j;int d = i /j;}}(2) 任意运算单元的长度超过int如果有任何运算单元的长度超过int,...

weixin_33129093的博客 1122

英飞凌AURIX™ TC3xx系列MCU的ISO 26262安全机制实战:从安全手册到代码集成的避坑指南

本文深入探讨英飞凌AURIX™ TC3xx系列MCU的ISO 26262安全机制实战应用,重点解析锁步核配置、ECC策略优化及SafeTlib库集成中的关键问题。通过代码示例和配置建议,帮助开发者实现ASIL D级别安全性,规避常见陷阱,提升汽车电子系统的功能安全合规性。

weixin_42558093的博客 405

Java 中的 long 与 byte 互转

long 占 8 个字节,在网络传输时经常用到! public static byte[] LongToBytes(long values) { byte[] buffer = new byte[8]; for (int i = 0; i < 8; i++) { int offset = 64 - (i + 1) * 8;

Mars Huang 1万+

Windows系统监控实战:Grafana+Prometheus+node_exporter配置全攻略

本文提供了一套完整的Windows系统监控解决方案,详细介绍了如何使用Grafana、Prometheus和node_exporter(Windows版为windows_exporter)构建可视化监控平台。从环境准备、组件安装配置,到数据可视化与常见问题排查,手把手指导您实现从数据采集到仪表盘展示的全过程,帮助您从被动救火转向主动预警,有效保障Windows服务器稳定运行。

assembly8low的博客 250

从零到一:Silvaco中跨导曲线的自动化脚本实现

本文详细介绍了如何使用Python脚本在Silvaco中实现跨导曲线(gm曲线)的自动化分析,包括数据加载、跨导计算和结果可视化。通过自动化处理Id-Vg曲线,显著提升半导体器件工程师的工作效率,特别适用于工艺优化和DOE分析。文章还提供了批量处理和关键参数提取的高级技巧,帮助工程师快速掌握Silvaco脚本开发。

nn3456的博客 569

java int转byte和long转byte的方法

public class ByteOrderUtils { public static byte[] int2byte(int res) { byte[] targets = new byte[4]; targets[3] = (byte) (res & 0xff);// 最低位 targets[2] = (byte) ((res >> 8) & 0xff);// 次低位 targets[1] = (byte) ((res >> 16) & 0xf...

rjc_lihui的专栏 207

ego-planner启动参数深度解析:从配置到实战避障应用

本文深入解析EGO-Planner启动参数的配置与实战应用,重点探讨无人机自主导航中的避障性能优化。通过环境感知、运动约束和算法控制三类参数的详细说明,结合ROS和RViz工具,提供从基础配置到高级调优的完整指南,帮助开发者提升无人机在复杂场景下的规划效率和安全性。

rum55的博客 247

java中int与byte,以及long与byte之间的转换

转载请注明出处! 原文链接:http://blog.youkuaiyun.com/zgyulongfei/article/details/7738970 做项目时候根据协议在发送网络流的时候需要将所有int及long转换成byte,因此写了以下的转换方法,希望能帮助到需要的朋友 ^_^ 闲话少说,直接上码。 public class Utilities { public static b

分享编程技术、项目开发、实用工具。 3万+

Tomcat源码:Acceptor与Poller、PollerEvent

前文中我们介绍到NioEndpoint的start方法启动了Acceptor与Poller这两个异步线程来处理连接请求,本文我们就来接着介绍这两个组件。目录前言一、Acceptor1、构造方法2、run方法LimitLatchNioChannel二、Poller与PollerEvent2、pollerregisterruneventsprocessKey。

CRUD工程师 2068

告别瞎猜!用通达信/同花顺这些资金流向函数,一眼看穿主力动向(附实战公式)

本文详细解析了通达信/同花顺资金流向函数的实战应用,帮助投资者精准识别主力动向。通过12个核心资金函数的组合逻辑,构建主力行为监控体系,避免未来函数陷阱,识别主力对倒行为,并提前捕捉异动。适合股票投资者提升自选股分析能力。

weixin_42522964的博客 1239

java 取反的几种方式

https://weblogs.asp.net/kashyapa/html-like-table-creation-in-wpf

u013078295的博客 1万+

YOLOv8【第一章:基础入门篇·第1节】一文搞定,核心架构深度解析与环境配置!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏,该专栏专注于分享我在YOLOv8目标检测模型中的实战经验,涵盖从入门基础到深度优化的全方位解决方案。无论你是计算机视觉的新手,还是具有多年深度学习经验的专家,本专栏都将为你提供高效、可复现的技术方案,助你掌握YOLOv8的核心技术,提升目标检测性能,突破瓶颈,优化模型,并加速项目开发🚀!

**My Coding Family** 2106

Java中的基本类型类型转换

/ 基本类型转换为 Stringint i = 42;// "42"// "42"// "42"// String 转换为基本类型// 42// 42// true// 错误处理try {// 会抛出 NumberFormatExceptionSystem.out.println("无法将字符串转换为整数: " + e.getMessage());

goTsHgo的博客 1196

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Java学习日记基础篇——基本类型及类型转换

一、Java工程的创建 在开发Java程序之前我们首先要学会创建Java工程,而新建一个Java工程需要下面三步: 新建java项目/工程-----------------相当于小区 新建java包-----------------------------相当于小区里的楼栋+单元 新建java类-----------------------------相当于楼里的房子(例如:8A802) 下面跟着我来创建一个Java工程,点击打开IntelliJ IDEA,点击File>new>pr

qq_42505148的博客 802

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Java基本数据类型及类型转换

Java基本数据类型内置数据类型byteshortintlongfloatdoublebooleanchar:引用数据类型自动类型转换强制类型转换隐含强制类型转换 内置数据类型 Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。 byte byte 数据类型是8位、有符号的,以二进制补码表示的整数; 最小值是 -128(-2^7); 最大值是 127(2^7-1); 默认值是 0; byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量

qq_51178391的博客 169

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Java —— 基本类型的类型转换

Java 提供的7种基本数据类型可以互相转换,有2种转换方式:自动类型转换和强制类型转换。

qq_42713936的博客 181

Java基础之基本类型转换知识点详解

Java语言所提供的7种数据类型之间是可以相互转换,有两种类型转换方式:自动类型转换和强制类型转换。 一、自动类型转换     举例说明: /* 基本数据类型之自动类型转换 作者:Gee */ public class AutoConversion { public static void main(String [] args)

项勇 | 一天不学点啥就浑身难受 792

java 基本类型的类型转换

基本类型的类型转换 在Java语言中不同的基本类型的值经常进行相互转换。Java提供7种数值类型可以相互转换,有两种转换方式,自动类型转换、强制类型转换。 自动类型转换 1.数据类型之间的关系图 从左到右是自动类型转换,从右到左是强制类型转换。 1.下面展示自动类型转换 2.+号不仅可以作为加法运算符使用,还可以作为字符串连接运算符使用,代码如下: 强制类型转换 强制类型转换是将右边的类型转到左面的类型,那么久的进行强制类型转换,强制类型转换方法为(ta...

liuwenqing11的博客 637

JAVA基本类型的类型转换

本页面更新日期: 2016年06月06日基本类型的类型转换 在JAVA程序中, 不同的基本类型的值 经常需要进行相互转换, 以满足项目的需求. JAVA语言所提供的 7种数值类型 之间可以相互转换, 有两种类型转换方式:自动类型转换 强制类型转换 自动类型转换 把一个 取值范围小 的数值或变量 直接赋值给 一个取值范围大的变量时, 系统将会进行自动类型转换; 否则就需要强制类型转换.

我就是认真的随便写写程序. 863

java基本数据类型转换_基本数据类型、类型转换

总结:基本数据类型(了解)整数byte、short、int、long浮点数float、double字符char布尔boolean类型转换(了解)数据范围小的赋值给数据范围大的会自动转换数据范围大的赋值给数据范围小用括号括起来大转小会出现精度损失一、数据类型1. 计算机存储单元计算机是可以用来存储数据的,但是无论是内存还是硬盘,计算机存储设备的最小信息单元叫位(bit),我们又称之为“比特位”,通常...

weixin_39881387的博客 202

JAVA基本类型转换

说基本数据类型转换之前,先了解下 Java 中的 8 种基本数据类型,以及它们的占内存的容量大小和表示的范围,如下图所示。 重新温故了下原始数据类型,现在来解释下它们之间的转换关系。 自动类型转换 自动类型转换是指:数字表示范围小的数据类型可以自动转换成范围大的数据类型。 如: long l = 100; int i = 200; long ll = i; 具体自动转换如如下图...

L的博客 171

Java基本类型,字面值前缀,字面值后缀,基本类型转换

Java基本类型,字面值前后缀,类型转换

码农博客 1999

java基本数据类型及类型转换

在java中数据类型在大类上可分为基本数据类型和引用数据类型。这篇博文中则主要针对基本数据类型进行介绍和了解每种数据类型的特别范围以及针对各个数据类型之间的类型转换。 数据类型的分类结构: 基本数据类型 数值型 整数类型(byte, short, int, long) 浮点类型(float, double) 字符型(char) 布尔型(boolean) 引用数据类型 类(clas...

每天都有营养目标的博客 249

Java类型转换 之 窄化基本类型转换(Narrowing Primitive Conversion)

Java类型转换 之 窄化基本类型转换(Narrowing Primitive Conversion)

听海边涛声 496

笔记(十六)Java八种基本数据类型、赋值与类型转换

基本数据类型 字符型:char 整数型:byte short int long 浮点型:float double 布尔型:boolean 字符型:char 1、char占用两个字节 2、char的取值范围:[0~65535] 3、char类型的字面量使用单引号括起来。 5、char可以存储一个汉字。 ...

w009550的博客 5530
上一篇: 数据库中的事务
下一篇: Java中的自动装箱拆箱
至学者
博客等级 码龄9年 180粉丝 773原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值