进制,数据类型,基本类型字面值,基本数据类型运算规则,基本数据类型转化规则

2023-10-13 22:59

本文主要是介绍进制,数据类型,基本类型字面值,基本数据类型运算规则,基本数据类型转化规则,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

进制

计数方式

二进制:0—1;1+1=10  11+1=100 在jdk1.7之前,程序中不允许定义二进制,从jdk1.7之后程序中可以定义二进制数字--以OB/ob作为开头 ob0011 ob101101

八进制0-7 满八进一 7+1=10 17+1=20 77+1=100 要求已0作为开头

十进制 0-9;满十进一,数字如果没有特殊标识,就默认是十进制

十六进制  0-9,a-f,满十六进一8+1=9   9+1=A 39+1=3A  99+1=A0  FF+1=100要求以OX/ox作为开头

1数据类型

扩展:在计算机中是以二进制形式来存储数据,每一位二进制在内存中称之为 位(bit 简写为b),8位=1字节(byte简写为B),1024B=1KB-->MB-->GB-->TB

1.1基本数据类型

1.1.1数值型

整数型

byte字节型     1个字节    27 ~27-1   -128~127

Short 短整型     2个字节  215 ~2151 -32768~32767

Int   整型       4个字节  231 ~231-1

Long 长整型     8个字节  263~263-1   需要在结尾添加L作为表示

自jdk1.7之后可以用_分割

Int a=1_122_123  

浮点型

float    单精度   四个字节    需要在结尾添加f/F作为标识  float a=1.23f -1038~1038

double  双精度   八个字节     默认为double类型      double b=1.256 -10308~10308   double a=4e4  (4*410)  double d=0xsp3表示十六进制的科学计数法 xpy表示x*2y

 

字符型

Char   字符型   两个字节   0-65535  默认编码utf-16  char a=’\u20ac’;

转义字符

制表符‘\t’  回车  ‘\r’  换行‘\n’\--->‘\n’ 单引号 ‘\’’双引号 ‘\”’

扩展:字符在存储过程中需要按照某中规则转化为数字,这种转化称之为编码,记录编码形成的表格形式称之为编码表 -- 码表

IOS-8859-1   西欧码表   1个字节1个字符

Gb2312      国标码      gbk   两个字节一个字符   收录了大部分简体汉字以及一部分繁体汉字

Unicode编码体系  万国码体系  utf-8  三个字节1个字符  utf-16   2个字节1个字符

布尔型
boolean类型两个取值ture和 false

1.2 引用数据类型

接口(interface) 类(class) 数组([ ])

变量定义格式    变量类型 标识符=值;

2标识符命名规则 

  1. 可以使用数字,字母,下划线 $
  2. 不能使用数字开头
  3. 见名知意(驼峰命名法)
  4. 严格区分大小写
  5. 不能使用java关键字

3基本数据类型字面值 

1整型默认是int类型

2小数默认是double类型

3 byte short char三种比int小的整数可以使用范围内的值直接赋值

4字面值后缀 float类型后缀为f double类型后缀为d long类型后缀为l

(后缀不区分大小写)

5字面值前缀 二进制使用0b作为前缀

八进制采用0作为前缀

十进制没有前缀

十六进制采用0x作为前缀

4 基本数据类型转换规则

(除boolean外),此处所说的大小是基本数据类型的取值范围大小:小转大 直接转,大转小 强制转

5基本数据类型运算规则

1相同数据类型运算时结果为同一类型例如3/2=1

2不同数据类型运算时结果为大类型

3 浮点数特殊值,0/0系统报错浮点型除以零时正数除以0则为正无穷大  负数除以0则为负无穷小,0.0/0结果为 NaN not a number

4浮点类型结果不准确

5 当整数运算超过其所在类型的取值范围之后会出现溢出  例如System.out.println(300000000*60*60*24*365); 由于字面值整型默认为int其结果已经超出int取值范围 System.out.println(300000000*60*60*24*365L);也是错误写法,在进行第一次运算的时候其结果已经超过int的取值范围结果也不准确, 正确写法应该是 System.out.println(300000000L*60*60*24*365);

小练习

1 在控制台打印  泡泡今年3岁了月薪99999.99感慨java是世界上最好的语言

代码

运行结果

练习二

在控制台打印除boolean类型外 其他七种基本数据类型的最大值与最小值

/*
本类用来测试几种基本类型的取值范围*/public class TestTypeScope {public static void main(String[] args) {int maxValue = Integer.MAX_VALUE;byte maxValue1 = Byte.MAX_VALUE;short maxValue2 = Short.MAX_VALUE;long maxValue3 = Long.MAX_VALUE;float maxValue4 = Float.MAX_VALUE;double maxValue5 = Double.MAX_VALUE;byte minValue = Byte.MIN_VALUE;short minValue1 = Short.MIN_VALUE;int minValue2 = Integer.MIN_VALUE;long minValue3 = Long.MIN_VALUE;float minValue4 = Float.MIN_VALUE;double minValue5 = Double.MIN_VALUE;char maxValue6 = Character.MAX_VALUE;char minValue6 = Character.MIN_VALUE;/*
boolean 测试布尔类型*/boolean b1=true;//      真为1boolean b2=false;//     假为0//ctrl+alt+向下键快速向下复制一行 如果翻转屏幕 禁用系统快捷键//ctrl+f 查找替换replace AllSystem.out.println("byte最大值为:\t"+maxValue1+"\tbyte的最小值为:\t"+minValue);System.out.println("short最大值为:\t"+maxValue2+"\tshort的最小值为:\t"+minValue1);System.out.println("int最大值为:\t"+maxValue+"\tint的最小值为:\t"+minValue2);System.out.println("long最大值为:\t"+maxValue3+"\tlong的最小值为:\t"+minValue3);System.out.println("float最大值为:\t"+maxValue4+"\tfloat的最小值为:\t"+minValue4);System.out.println("double最大值为:\t"+maxValue5+"\tdouble的最小值为:\t"+minValue5);System.out.println("char最大值为:\t"+maxValue6+"\tchar的最小值为:\t"+minValue6);/*测试字符类型charchar类型可以保存一个数字/字符/汉字  如果存的是数字,会在打印的时候把对应的字符拿出来ASCII表中规定了0-127对应的字符 128-65535以问号处理*/char c1='a';char c2='中';char c3=97;System.out.println(c1);System.out.println(c2);System.out.println(c3);}
}

运行结果

3.

练习值交换
package cn.tude.basic;import java.util.Scanner;
/*
本类用来练习值交换类*/
public class TestValueExchange {/*main方法程序的入口*/public static void main(String[] args) {Scanner scanner=new Scanner(System.in);System.out.println("请输入第一个数字");int a=scanner.nextInt();System.out.println("请输入第二个数字");int b=scanner.nextInt();System.out.println("您输入的第一个数字为"+a);System.out.println("您输入的第二个数字为"+b);//交换过程int temp;temp=a;//用b的值覆盖掉a的值a=b;//用temp覆盖掉b的值b=temp;System.out.println("反转之后第一个数的值为"+a);System.out.println("反转之后第二个数-的值为"+b);//c赋值给tee之后为什么打印c c的值为1//c的值赋值给tee之后c的值c的值不变///* int c=1,tee;tee=c;System.out.println(c);*/}
}

运行结果

这篇关于进制,数据类型,基本类型字面值,基本数据类型运算规则,基本数据类型转化规则的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/206434

相关文章

Mysql 中的多表连接和连接类型详解

《Mysql中的多表连接和连接类型详解》这篇文章详细介绍了MySQL中的多表连接及其各种类型,包括内连接、左连接、右连接、全外连接、自连接和交叉连接,通过这些连接方式,可以将分散在不同表中的相关数据... 目录什么是多表连接?1. 内连接(INNER JOIN)2. 左连接(LEFT JOIN 或 LEFT

Redis的Hash类型及相关命令小结

《Redis的Hash类型及相关命令小结》edisHash是一种数据结构,用于存储字段和值的映射关系,本文就来介绍一下Redis的Hash类型及相关命令小结,具有一定的参考价值,感兴趣的可以了解一下... 目录HSETHGETHEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSET

Python中异常类型ValueError使用方法与场景

《Python中异常类型ValueError使用方法与场景》:本文主要介绍Python中的ValueError异常类型,它在处理不合适的值时抛出,并提供如何有效使用ValueError的建议,文中... 目录前言什么是 ValueError?什么时候会用到 ValueError?场景 1: 转换数据类型场景

C# dynamic类型使用详解

《C#dynamic类型使用详解》C#中的dynamic类型允许在运行时确定对象的类型和成员,跳过编译时类型检查,适用于处理未知类型的对象或与动态语言互操作,dynamic支持动态成员解析、添加和删... 目录简介dynamic 的定义dynamic 的使用动态类型赋值访问成员动态方法调用dynamic 的

基本知识点

1、c++的输入加上ios::sync_with_stdio(false);  等价于 c的输入,读取速度会加快(但是在字符串的题里面和容易出现问题) 2、lower_bound()和upper_bound() iterator lower_bound( const key_type &key ): 返回一个迭代器,指向键值>= key的第一个元素。 iterator upper_bou

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

usaco 1.2 Palindromic Squares(进制转化)

考察进制转化 注意一些细节就可以了 直接上代码: /*ID: who jayLANG: C++TASK: palsquare*/#include<stdio.h>int x[20],xlen,y[20],ylen,B;void change(int n){int m;m=n;xlen=0;while(m){x[++xlen]=m%B;m/=B;}m=n*n;ylen=0;whi

usaco 1.2 Name That Number(数字字母转化)

巧妙的利用code[b[0]-'A'] 将字符ABC...Z转换为数字 需要注意的是重新开一个数组 c [ ] 存储字符串 应人为的在末尾附上 ‘ \ 0 ’ 详见代码: /*ID: who jayLANG: C++TASK: namenum*/#include<stdio.h>#include<string.h>int main(){FILE *fin = fopen (

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

uva 10061 How many zero's and how many digits ?(不同进制阶乘末尾几个0)+poj 1401

题意是求在base进制下的 n!的结果有几位数,末尾有几个0。 想起刚开始的时候做的一道10进制下的n阶乘末尾有几个零,以及之前有做过的一道n阶乘的位数。 当时都是在10进制下的。 10进制下的做法是: 1. n阶位数:直接 lg(n!)就是得数的位数。 2. n阶末尾0的个数:由于2 * 5 将会在得数中以0的形式存在,所以计算2或者计算5,由于因子中出现5必然出现2,所以直接一