Java学习从入门到入坟之数据类型与进制

1. 数据类型

java是一门强类型语言,所有的数据在java中都有对应的类型

数据类型分类类型名称所占空间数据范围注意事项
基本数据类型byte(字节型)1个字节-128 到 127不能存储超过这个空间
short(短整型)2个字节-32768到32767不能超过这个区间
int(整型)4个字节-2147483648到2147483647不能超过这个区间
long(长整型)8个字节-9223372036854775808到9223372036854775807不能超过这个区间
float(单精度)4个字节 精度:6-7位
double(双精度)8个字节精度:14-16位
char(字符型)2个字节一个正整数(0-
65535)可以参与四则运算
boolean(逻辑型
布尔型)分配1个字节(实际
存储1位)rue/falsetrue和false是关
键词
引用数据类型类 class
接口
数组[]

注意事项

  • 在java中所有的整数的默认类型都是int,当我们将一个超过int范围的整数值给long类型的变量的时候会报错.解决办法:将字面值后面加"l"或者是"L"(推荐加L).
  • 如果byte或short赋值时,只要直面不超过byte或short的范围就可以赋值.
  • 虽然所有整数类型有很小的数也有很大的数,但是有时也会发生不满足的场景,针对一个特别大的数,java中可以采用BigInteger去完成
  • 在java中所有的小数的默认类型是double类型,当把一个小数赋值给float类型的变量时,一定要在小数后加"f"或者"F".
  • 小数在进行四则运算的时候,会有误差,导致最后的结果可能有问题,要避免通过float或者时double进行四则运算.后期我们会通过BigDecimal去进行小数的四则运算(精度更高).
  • char类型的变量在赋值的时候通过一组’ '引起来的单个字符,不能时0个也不能是多个,更不能是双引号(在java中双引号是字符串(String类型)单引号表示的是字符串类型).
  • char类型的变量是可以参加四则运算的,原因是实际字符在存储的时候存储的是字符集合中的十进制数,所以char类型的变量的表示的数据是(0-65535).所以char类型赋值时可以直接通过一个正整数赋值.

2. 数据类型的赋值

2.1给整型赋值

二进制赋值

//从jdk1.7之后才有的,以0b、0B开头后跟一个二进制数
int num = 0B1001;

八进制赋值

//以0开头后跟一个8进制的数
int num = 012;

十进制赋值

//正常赋值使用最多
int num = 12;

十六进制赋值

//以0x或者是0X开头 后跟一个16进制数 A->10 B->11 C->12 D->13 E->14 F->15
int num = 3F;

2.2 给小数赋值

正常赋值

double num = 23.12;

科学计数法赋值

double pi = 3.1415e-3;
System.out.println("科学计数法表示pi的值是:"+pi);

注意:

  • e和E都可以
  • e前面小数最高位,个位必须时0-9之间 可以分正负
  • e后面的数必须保证是整数,可以是正负.正 -> 小数点往右移动的数, 负->小数点往左移动的位数.

2.3 逻辑型变量赋值

  • 只有两个值.true和false,注意和c不同的是java中的boolean类型不能通过 0 和 1赋值,内存开辟一个字节,但实际只是用1位.

2.4 字符型变量赋值

正常赋值

char ch = 'a';
System.out.println("通过单引号赋值:"+ch);
ch = 65;
System.out.println("通过赋值一个不超过65535的正整数:"+ch);

通过Unicode码进行赋值

char ch = '\u0000';
System.out.println("通过unicode码赋值:"+ch+"----");

2.5转义字符

就是用来转变含义的字符,在java中有一些字符有自己的含义,此时我们需要通过转义字符改变当前字符的含义。

ch = '\t';
System.out.println("显示ch的字符:"+ch+"----");
  • \就是java中的转移支付,将(本身的字符t的含义发生改变.\t一个制表符为tab,一个tab键是8个空格).
  • 如果前面出现了字符,那么\t会将面前的位数补齐.
    System.out.println()
    换行输出,注意是下一行换行
    System.out.println()
    下一行不换行.
    \n 换行,将光标移动到下一行换行.
System.out.print("北京欢迎你\n");
System.out.print(",我就想试试");

输出:

北京欢迎你
,我就想试试

转义字符显示 ,",'

System.out.println("\\");
//打印输出"
System.out.println("\"");

2.6 数据类型转换

在java中不同的数据类型之间是可以互相进行转换的.

2.6.1 自动类型转换

大数据类型 变量名 = 小类型变量

public class Demo09{
	public static void main(String[] args){
		// 声明一个byte类型的变量
		byte b = 100;
		// 通过自动类型转换将byte类型的变量变为int类型
		int num = b;
		System.out.println("byte类型的变量b:"+b);
		System.out.println("int类型的变量num:"+num);
	}
}
  • 所有整数都是int类型,但是在给byte和short赋值的时候,只要保证数据在byte和short的范围就可以直接赋值.

自动向上转型

//自动类型提升
double d = 3*12.8F;
System.out.println("最后的计算结果是:"+d);
  • 在参与四则运算过程中,数据会自动提升类型;提升规则:
    • byte -> short -> int -> long -> float -> double
    • char -> int ->long ->float ->double
    • boolean不能参与转换,boolean不能参与四则运算

2.6.2 强制类型转换

//将num中的100 填充到b变量中
b = (byte)num;
System.out.println("byte类型的变量b:"+b);

小数据类型 变量名 = 大数据类型;(如果不想让编译器报错,需要强制类型转换.)
小数据类型 变量名 = (小数据类型)大数据类型

强转有风险,转换需谨慎

3.进制

3.1 关于进制

  • 所有数字在计算机底层都是以二进制形式存在.
  • 对于整数,有四种表示方式
    • 二进制:0,1,满二进1.以0b或者0B开头
    • 十进制:0-9,满10进1
    • 八进制:0-7,满8进1,以数字0开头表示.
    • 十六进制:0-9以及A-F,满16进1.以0x或0X开头
      在这里插入图片描述

3.2二进制

  • Java 整数常量默认是 整数常量默认是 整数常量默认是 int int类型,当用二进制定义整数时其第 32 位是符号; 位是符号; 当是 long long 类型时,二进制默认占 64 位,第 64 位是.
  • 二进制的整数有如下三种形式:
    • 源码:字节将一个数字换成二进制数.最高位是符号位
    • 负数的反码:是对源码按位取反,值时最高位(符号位)为1.
    • 负数的补码:其反码加1.
  • 计算机以二进制补码的形式保存所有整数

在这里插入图片描述

3.3 进制间的转换

  • 进制的基本转换

    • 十进制 二进制转换
      • 二进制转成十进制 乘以2的幂数
      • 十进制转成二进制 除以2取余 逆向排列
    • 二进制 八进制互转
    • 二进制十六进制互转
    • 十进制 八进制互转
    • 十进制 十六进制互转

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

1. 基础概念 汇编语言是一种低级语言,它是计算机硬件指令的助记符。汇编语言直接反映了计算机的硬件结构,可以直接操作计算机的硬件资源。 汇编语言的基本单位是汇编指令,它由操作码和操作数两部分组成。操作码表示要执行的操作,操作数表示操作的对象或数据。 汇编语言的程序由若干条汇编指令组成,程序的执行顺序由程序中的指令顺序决定。 2. 寄存器 寄存器是计算机中用来暂时存储数据的高速存储器件,是汇编语言中最常用的数据存储方式。 常用的寄存器有通用寄存器、段寄存器、指针寄存器、标志寄存器等。 通用寄存器包括AX、BX、CX、DX等,可以用来存储数据、地址、偏移量等。 段寄存器包括CS、DS、SS、ES等,用来存储段地址。 指针寄存器包括SP、BP、SI、DI等,用来存储栈指针、基址指针、源地址指针、目的地址指针等。 标志寄存器包括CF、PF、AF、ZF、SF、OF等,用来存储运算结果的状态信息。 3. 指令集 汇编语言的指令集包括数据传送指令、算术指令、逻辑指令、比较指令、跳转指令、循环指令等。 数据传送指令用来把数据从一个地方传送到另一个地方,包括MOV、XCHG、LEA等。 算术指令用来进行加、减、乘、除等运算,包括ADD、SUB、MUL、DIV等。 逻辑指令用来进行位运算,包括AND、OR、NOT、XOR等。 比较指令用来比较两个数据的大小关系,包括CMP、TEST等。 跳转指令用来改变程序的执行顺序,包括JMP、JZ、JNZ、JE、JNE等。 循环指令用来重复执行一段程序,包括LOOP、LOOPE、LOOPZ、LOOPNE、LOOPNZ等。 4. 程序设计 汇编语言的程序设计需要掌握一定的技巧和方法,包括程序的结构、数据的处理、流程控制等。 程序的结构包括程序的头部、数据段、代码段、堆栈段等。 数据的处理包括数据类型、数据的存储和读取、数据的转换等。 流程控制包括条件判断、循环控制、函数调用等。 5. 汇编器和调试器 汇编器是将汇编语言程序翻译成机器语言程序的工具,可以将汇编语言程序转换成目标代码或可执行文件。 调试器是用来调试程序的工具,可以帮助程序员查找程序中的错误、调试程序的执行流程等。 6. 总结 学习汇编语言需要掌握基本概念、寄存器、指令集、程序设计、汇编器和调试器等知识,需要进行大量的实践和练习,才能掌握汇编语言的编程技巧和方法。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值