系列文章目录
Java基础01:JAVA概述、基础语法Java基础02:运算符、流程控制语句、Random随机数Java基础03:IDEA、快捷键Java基础04:数组、二维数组Java基础05:方法Java基础06:Debug、进制Java基础07:面向对象基础Java基础08:API、字符串String、StringBuilderJava基础09:ArrayList集合Java基础作业
文章目录
- 系列文章目录
- Debug
- 如何加断点
- 如何运行加了断点的程序
- 看哪里
- 点哪里
- 如何删除断点
- 查看方法参数
- 进制
- 不同进制的书写格式
- 任意进制转十进制
- 十进制转任意进制
- 二进制转任意进制(8421码)
- 原码反码补码
- 补码推原码
Debug
Debug:是供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序。
Debug调试,又被称为断点调试,断点其实是一个标记,告诉Debug从标记的地方开始查看。
打断点:
1.在可疑代码处打上断点;2.如过不知道哪里可疑,可以在main方法第一行打
预判和见证:
如何加断点
如何运行加了断点的程序
看哪里
点哪里
点Step Into (F7)这个箭头,也可以直接按F7
点Stop结束
如何删除断点
选择要删除的断点,单击鼠标左键即可。
如果是多个断点,可以每一个再点击一次。也可以一次性全部删除。
查看方法参数
进制
指进位制,是人们规定的一种进位方式,表示某一位置上的数,运算时是逢X进一位。
计算机数据在底层运算的时候,都是以二进制形式。
十六进制介绍:用数字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15,这些称作十六进制。
【0】【1】【2】【3】【4】【5】【6】【7】【8】【9】【a】【b】【c】【d】【e】【f】
win+R,输如calc打开windows自带计算器,可切换到程序员计算器。
不同进制的书写格式
⚫十进制(decimal ):Java中,数值默认都是10进制,不需要加任何修饰。
⚫ 二进制(binary):数值前面以0b开头,b大小写都可以。
⚫ 八进制(octal ):数值前面以0开头。
⚫ 十六进制(hexadecimal):数值前面以0x开头,x大小写都可以。
注意:以上内容是jdk7版本之后才被支持。
书写的虽然加入了进制的标识,但是控制台展示的都是十进制数据。
任意进制转十进制
⚫ 公式:系数 * 基数的权次幂 相加
⚫ 总结:任意进制到十进制的转换
◼ 系数:每一【位】上的数
◼ 基数:几进制,就是几
◼ 权:从数值的右侧,以0开始,逐个+1增加
二进制转十进制:
十六进制转十进制:
十进制转任意进制
公式:除基取余,使用源数据不断的除以基数(几进制,基数就是几)得到余数,直到商为0,再将余数倒着拼起来即可。
十进制到二进制的转换:
十进制到十六进制的转换:
二进制转任意进制(8421码)
8421码又称BCD码,是BCD代码中最常用的一种。
BCD: (Binary-Coded Decimal) 二进制码十进制数,在这种编码方式中,每一位二进制值的1都是代表一个固定数值,把每一位的1代表的十进制数加起来得到的结果就是它所代表的十进制数。
二进制快速转十进制:
二进制快速转八进制:
八进制:将三个二进制位看为一组,再进行转换
原因:八进制逢八进一,三个二进制位最多可以表示111,也就是数值7,如果出现第四位,就超范围了。
二进制快速转十六进制:
十六进制:将四个二进制位看为一组,再进行转换
原因:十六进制逢十六进一,四个二进制位最多可以表示1111,也就是数值15,如果出现第五位,就超范围了。
原码反码补码
注意:计算机中的数据,都是以二进制补码的形式在运算,而补码则是通过反码和原码推算出来的。
1B(byte,字节)= 8 bit;
1024B=1KB
1024KB=1MB
1024MB=1GB
原码(可直观看出数据大小):就是二进制定点表示法,即最高位为符号位,【0】表示正,【1】表示负,其余位表示数值的大小。
通过一个字节表示+7和-7。
代码:byte b1 = 7; byte b2 = -7;
7的反码:0(符号位) 0000111
-7的反码:1(符号位) 0000111
反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码(数据以该状态进行运算):正数的补码与其原码相同;负数的补码是在其反码的末位加1。
总结:
正数的原反补都是相同的。
负数的【反码】,是根据【原码】取反(0变1,1变0)得到的 (符号位不变)。
负数的【补码】,是根据【反码】的末尾+1,得到的。
补码推原码
System.out.println((byte)130);//结果:-126
①整数130 :默认为int,int占用4个字节,也就是4组8个二进制位
补码为:00000000 00000000 00000000 10000010
② 强转到byte:4个字节,强制转换为1个字节,就是砍掉前3组8位
强转砍掉后:10000010
③ 根据运算后的补码,反向推原码
④ 使用8421码开始计算