电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

詳解IDEA中Debug的使用和進制轉換問題

瀏覽:45日期:2024-08-04 16:55:07
1.Debug模式

1.1 什么是Debug模式

是供程序員使用的程序調試工具,它可以用于查看程序的執行流程,也可以用于追蹤程序執行過程來調試程序。

1.2 Debug介紹與操作流程

如何加斷點

選擇要設置斷點的代碼行,在行號的區域后面單擊鼠標左鍵即可

如何運行加了斷點的程序

在代碼區域右鍵Debug執行

看哪里

看Debugger窗口

看Console窗口

點哪里

點Step Into (F7)這個箭頭,也可以直接按F7

如何刪除斷點

選擇要刪除的斷點,單擊鼠標左鍵即可

如果是多個斷點,可以每一個再點擊一次。也可以一次性全部刪除

2. 進制的介紹與書寫格式

2.1 進制的介紹與書寫格式

代碼 :

public class Demo1 { /* 十進制:Java中,數值默認都是10進制,不需要加任何修飾。 二進制:數值前面以0b開頭,b大小寫都可以。 八進制:數值前面以0開頭。 十六進制:數值前面以0x開頭,x大小寫都可以。 注意: 書寫的時候, 雖然加入了進制的標識, 但打印在控制臺展示的都是十進制數據. */ public static void main(String[] args) { System.out.println(10); System.out.println('二進制數據0b10的十進制表示為:' + 0b10); System.out.println('八進制數據010的十進制表示為:' + 010); System.out.println('十六進制數據0x10的十進制表示為:' + 0x10); }}

2.2 任意進制到十進制的轉換

詳解IDEA中Debug的使用和進制轉換問題

詳解IDEA中Debug的使用和進制轉換問題

2.3 進制轉換-十進制到任意進制轉換

2.3.1 : 十進制到二進制的轉換

​ 公式:除基取余使用源數據,不斷的除以基數(幾進制,基數就是幾)得到余數,直到商為0,再將余數倒著拼起來即可。

​ 需求:將十進制數字11,轉換為2進制。

​ 實現方式:源數據為11,使用11不斷的除以基數,也就是2,直到商為0。

詳解IDEA中Debug的使用和進制轉換問題

2.3.2 : 十進制到十六進制的轉換

​ 公式:除基取余使用源數據,不斷的除以基數(幾進制,基數就是幾)得到余數,直到商為0,再將余數倒著拼起來即可。

​ 需求:將十進制數字60,轉換為16進制。

​ 實現方式:源數據為60,使用60不斷的除以基數,也就是16,直到商為0。

詳解IDEA中Debug的使用和進制轉換問題

​ 結論:十進制到任意進制的轉換

​ 公式:除基取余使用源數據,不斷的除以基數(幾進制,基數就是幾)得到余數,直到商為0,再將余數倒著 拼起來即可

2.4 快速進制轉換法

​ 8421碼:

​ 8421碼又稱BCD碼,是BCD代碼中最常用的一種BCD: (Binary-Coded Decimal‎) 二進制碼十進制數在這種編碼方式中,每一位二進制值的1都是代表一個固定數值,把每一位的1代表的十進制數加起來得到的結果就是它所代表的十進制數。

詳解IDEA中Debug的使用和進制轉換問題

詳解IDEA中Debug的使用和進制轉換問題

詳解IDEA中Debug的使用和進制轉換問題

2.5 原碼反碼補碼

前言 : 計算機中的數據,都是以二進制補碼的形式在運算,而補碼則是通過反碼和原碼推算出來的

**原碼 **:(可直觀看出數據大小)

就是二進制定點表示法,即最高位為符號位,【0】表示正,【1】表示負,其余位表示數值的大小。

通過一個字節表示+7和-7,代碼:byte b1 = 7; byte b2 = -7;一個字節等于8個比特位,也就是8個二進制位

0(符號位) 0000111

1(符號位) 0000111

反碼 : 正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外。

補碼 : (數據以該狀態進行運算)正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。

詳解IDEA中Debug的使用和進制轉換問題詳解IDEA中Debug的使用和進制轉換問題

2.6 位運算-基本位運算符

public class Demo2 { /* 位運算: 位運算符指的是二進制位的運算,先將十進制數轉成二進制后再進行運算。 在二進制位運算中,1表示true,0表示false。 & 位與 : 遇false則false, 遇0則0 00000000 00000000 00000000 00000110 // 6的二進制 & 00000000 00000000 00000000 00000010 // 2的二進制 ----------------------------------------- 00000000 00000000 00000000 00000010 // 結果: 2 | 位或 : 遇true則true, 遇1則1 ^ 位異或 : 相同為false, 不同為true ~ 取反 : 全部取反, 0變1, 1變0 (也包括符號位) 00000000 00000000 00000000 00000110 // 6的二進制補碼 ~ 11111111 11111111 11111111 11111001 - 1 // -1求反碼 ------------------------------------ 11111111 11111111 11111111 11111000 // 反碼推原碼 10000000 00000000 00000000 00000111 // -7 */ public static void main(String[] args) { System.out.println(6 & 2); System.out.println(~6); }}

2.7 位運算-位移運算符

位運算概述 : 位運算符指的是二進制位的運算,先將十進制數轉成二進制后再進行運算。在二進制位運算中,1表示true,0表示false。

位運算符介紹 : [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-bjGD9ZTs-1606280432728)(.img1590937235620.png)]

代碼 :

public class Demo3 { /* 位移運算符: << 有符號左移運算,二進制位向左移動, 左邊符號位丟棄, 右邊補齊0 運算規律: 向左移動幾位, 就是乘以2的幾次冪12 << 2(0)0000000 00000000 00000000 000011000 // 12的二進制 ----------------------------------------------------------------------------- >> 有符號右移運算,二進制位向右移動, 使用符號位進行補位 運算規律: 向右移動幾位, 就是除以2的幾次冪000000000 00000000 00000000 0000001(1) // 3的二進制 ----------------------------------------------------------------------------- >>> 無符號右移運算符, 無論符號位是0還是1,都補0010000000 00000000 00000000 00000110 // -6的二進制 */ public static void main(String[] args) { System.out.println(12 << 1); // 24 System.out.println(12 << 2); // 48 }}

public class Demo4 { /* ^ 運算符的特點 一個數, 被另外一個數, 異或兩次, 該數本身不變 */ public static void main(String[] args) { System.out.println(10 ^ 5 ^ 10); }}3.基礎練習

3.1 數據交換

案例需求

​ 已知兩個整數變量a = 10,b = 20,使用程序實現這兩個變量的數據交換最終輸出a = 20,b = 10;

代碼實現

public class Test1 { /* 需求:已知兩個整數變量a = 10,b = 20,使用程序實現這兩個變量的數據交換 最終輸出a = 20,b = 10; 思路: 1. 定義一個三方變量temp,將a原本記錄的值,交給temp記錄 (a的值,不會丟了) 2. 使用 a 變量記錄 b 的值,(第一步交換完畢,b的值也丟不了了) 3. 使用 b 變量記錄 temp的值,也就是a原本的值 (交換完畢) 4. 輸出 a 和 b 變量即可 */ /* 動態初始化格式: 數據類型[][] 變量名 = new 數據類型[m][n]; m表示這個二維數組,可以存放多少個一維數組 n表示每一個一維數組,可以存放多少個元素 */ public static void main(String[] args) { int a = 10; int b = 20; // 將a原本記錄的值,交給temp記錄 (a的值,不會丟了) int temp = a; // 用 a 變量記錄 b 的值,(第一步交換完畢,b的值也丟不了了) a = b; // 使用 b 變量記錄 temp的值,也就是a原本的值 (交換完畢) b = temp; // 輸出 a 和 b 變量即可 System.out.println('a=' + a); System.out.println('b=' + b); }}

3.2 數組反轉【應用】

案例需求 :

​ 已知一個數組 arr = {19, 28, 37, 46, 50}; 用程序實現把數組中的元素值交換,

​ 交換后的數組 arr = {50, 46, 37, 28, 19}; 并在控制臺輸出交換后的數組元素

實現步驟 :

1. 定義兩個變量, start和end來表示開始和結束的指針.

確定交換條件, start < end 允許交換循環中編寫交換邏輯代碼每一次交換完成, 改變兩個指針所指向的索引 start++, end?循環結束后, 遍歷數組并打印, 查看反轉后的數組

代碼實現 :

public class Test2 { /* 需求:已知一個數組 arr = {19, 28, 37, 46, 50}; 用程序實現把數組中的元素值交換, 交換后的數組 arr = {50, 46, 37, 28, 19}; 并在控制臺輸出交換后的數組元素。 步驟: 1. 定義兩個變量, start和end來表示開始和結束的指針. 2. 確定交換條件, start < end 允許交換 3. 循環中編寫交換邏輯代碼 4. 每一次交換完成, 改變兩個指針所指向的索引 start++, end-- 5. 循環結束后, 遍歷數組并打印, 查看反轉后的數組 */ public static void main(String[] args) { int[] arr = {19, 28, 37, 46, 50}; // 1. 定義兩個變量, start和end來表示開始和結束的指針. int start = 0; int end = arr.length -1; // 2. 確定交換條件, start < end 允許交換 // 4. 每一次交換完成, 改變兩個指針所指向的索引 start++, end-- // for(int start = 0, end = arr.length -1; start < end; start++, end--) for( ; start < end; start++, end--){ // 3. 循環中編寫交換邏輯代碼 int temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; } for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } }}

3.3 二維數組概述

概述 : 二維數組也是一種容器,不同于一維數組,該容器存儲的都是一維數組容器

3.4 二維數組動態初始化

動態初始化格式:

數據類型[][] 變量名 = new 數據類型[m][n];m表示這個二維數組,可以存放多少個一維數組n表示每一個一維數組,可以存放多少個元素

public class Demo1Array { /* 動態初始化格式: 數據類型[][] 變量名 = new 數據類型[m][n]; m表示這個二維數組,可以存放多少個一維數組 n表示每一個一維數組,可以存放多少個元素 */ public static void main(String[] args) { // 數據類型[][] 變量名 = new 數據類型[m][n]; int[][] arr = new int[3][3]; /* [[I@10f87f48 @ : 分隔符 10f87f48 : 十六進制內存地址 I : 數組中存儲的數據類型 [[ : 幾個中括號就代表的是幾維數組 */ System.out.println(arr); /* 二維數組存儲一維數組的時候, 存儲的是一維數組的內存地址 */ System.out.println(arr[0]); System.out.println(arr[1]); System.out.println(arr[2]); System.out.println(arr[0][0]); System.out.println(arr[1][1]); System.out.println(arr[2][2]); // 向二維數組中存儲元素 arr[0][0] = 11; arr[0][1] = 22; arr[0][2] = 33; arr[1][0] = 11; arr[1][1] = 22; arr[1][2] = 33; arr[2][0] = 11; arr[2][1] = 22; arr[2][2] = 33; // 從二維數組中取出元素并打印 System.out.println(arr[0][0]); System.out.println(arr[0][1]); System.out.println(arr[0][2]); System.out.println(arr[1][0]); System.out.println(arr[1][1]); System.out.println(arr[1][2]); System.out.println(arr[2][0]); System.out.println(arr[2][1]); System.out.println(arr[2][2]); }}

3.5 二維數組訪問元素的細節問題

問題 : 二維數組中存儲的是一維數組, 那能不能存入 [提前創建好的一維數組] 呢 ?

答 : 可以的

代碼實現

public class Demo2Array { /* 問題: 二維數組中存儲的是一維數組, 那能不能存入 [提前創建好的一維數組] 呢 ? 答 : 可以的 */ public static void main(String[] args) { int[] arr1 = {11,22,33}; int[] arr2 = {44,55,66}; int[] arr3 = {77,88,99,100}; int[][] arr = new int[3][3]; arr[2][3] = 100; arr[0] = arr1; arr[1] = arr2; arr[2] = arr3; System.out.println(arr[1][2]); System.out.println(arr[2][3]); }}

3.6 二維數組靜態初始化

**完整格式 :** 數據類型[][] 變量名 = new 數據類型[][]{ {元素1, 元素2...} , {元素1, 元素2...}

**簡化格式 :** 數據類型[][] 變量名 = { {元素1, 元素2...} , {元素1, 元素2...} ...};

**代碼實現 : **

public class Demo3Array { /* 完整格式:數據類型[][] 變量名 = new 數據類型[][]{ {元素1, 元素2...} , {元素1, 元素2...} ...}; 簡化格式: 數據類型[][] 變量名 = { {元素1, 元素2...} , {元素1, 元素2...} ...}; */ public static void main(String[] args) { int[] arr1 = {11,22,33}; int[] arr2 = {44,55,66}; int[][] arr = {{11,22,33}, {44,55,66}}; System.out.println(arr[0][2]); int[][] array = {arr1,arr2}; System.out.println(array[0][2]); }}

3.7 二維數組遍歷

需求 :

​ 已知一個二維數組 arr = {{11, 22, 33}, {33, 44, 55}};

​ 遍歷該數組,取出所有元素并打印

步驟 :

1. 遍歷二維數組,取出里面每一個一維數組2. 在遍歷的過程中,對每一個一維數組繼續完成遍歷,獲取內部存儲的每一個元素

代碼實現 :

public class Test1 { /* 需求: 已知一個二維數組 arr = {{11, 22, 33}, {33, 44, 55}}; 遍歷該數組,取出所有元素并打印 步驟: 1. 遍歷二維數組,取出里面每一個一維數組 2. 在遍歷的過程中,對每一個一維數組繼續完成遍歷,獲取內部存儲的每一個元素 */ public static void main(String[] args) { int[][] arr = {{11, 22, 33}, {33, 44, 55}}; // 1. 遍歷二維數組,取出里面每一個一維數組 for (int i = 0; i < arr.length; i++) { //System.out.println(arr[i]); // 2. 在遍歷的過程中,對每一個一維數組繼續完成遍歷,獲取內部存儲的每一個元素 //int[] temp = arr[i]; for (int j = 0; j < arr[i].length; j++) { System.out.println(arr[i][j]); } } }}

3.8 二維數組求和

需求 :

某公司季度和月份統計的數據如下:單位(萬元)第一季度:22,66,44第二季度:77,33,88第三季度:25,45,65第四季度:11,66,99

步驟 :

定義求和變量,準備記錄最終累加結果使用二維數組來存儲數據,每個季度是一個一維數組,再將4個一維數組裝起來遍歷二維數組,獲取所有元素,累加求和輸出最終結果

代碼實現 :

public class Test2 { /* 需求: 某公司季度和月份統計的數據如下:單位(萬元) 第一季度:22,66,44 第二季度:77,33,88 第三季度:25,45,65 第四季度:11,66,99 步驟: 1. 定義求和變量,準備記錄最終累加結果 2. 使用二維數組來存儲數據,每個季度是一個一維數組,再將4個一維數組裝起來 3. 遍歷二維數組,獲取所有元素,累加求和 4. 輸出最終結果 */ public static void main(String[] args) { // 1. 定義求和變量,準備記錄最終累加結果 int sum = 0; // 2. 使用二維數組來存儲數據,每個季度是一個一維數組,再將4個一維數組裝起來 int[][] arr = { {22,66,44} , {77,33,88} , {25,45,65} , {11,66,99}}; // 3. 遍歷二維數組,獲取所有元素,累加求和 for (int i = 0; i < arr.length; i++) { for(int j = 0; j < arr[i].length; j++){ sum += arr[i][j]; } } // 4. 輸出最終結果 System.out.println(sum); }}

個季度是一個一維數組,再將4個一維數組裝起來3. 遍歷二維數組,獲取所有元素,累加求和4. 輸出最終結果

*/public static void main(String[] args) {// 1. 定義求和變量,準備記錄最終累加結果int sum = 0;// 2. 使用二維數組來存儲數據,每個季度是一個一維數組,再將4個一維數組裝起來int[][] arr = { {22,66,44} , {77,33,88} , {25,45,65} , {11,66,99}};// 3. 遍歷二維數組,獲取所有元素,累加求和for (int i = 0; i < arr.length; i++) {for(int j = 0; j < arr[i].length; j++){sum += arr[i][j];}}// 4. 輸出最終結果System.out.println(sum);}}

到此這篇關于IDEA中Debug的使用和進制轉換的文章就介紹到這了,更多相關IDEA使用Debug內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: IDEA
相關文章:
主站蜘蛛池模板: 北京森语科技有限公司-模型制作专家-展览展示-沙盘模型设计制作-多媒体模型软硬件开发-三维地理信息交互沙盘 | 商用绞肉机-熟肉切片机-冻肉切丁机-猪肉开条机 - 广州市正盈机械设备有限公司 | 超声波电磁流量计-液位计-孔板流量计-料位计-江苏信仪自动化仪表有限公司 | 紫外线老化试验箱_uv紫外线老化试验箱价格|型号|厂家-正航仪器设备 | 冷水机-冰水机-冷冻机-冷风机-本森智能装备(深圳)有限公司 | 隔离变压器-伺服变压器--输入输出电抗器-深圳市德而沃电气有限公司 | 水成膜泡沫灭火剂_氟蛋白泡沫液_河南新乡骏华消防科技厂家 | 立式壁挂广告机厂家-红外电容触摸一体机价格-华邦瀛 | 楼梯定制_楼梯设计施工厂家_楼梯扶手安装制作-北京凌步楼梯 | 变色龙PPT-国内原创PPT模板交易平台 - PPT贰零 - 西安聚讯网络科技有限公司 | 干培两用箱-细菌恒温培养箱-菲斯福仪器 | U拓留学雅思一站式服务中心_留学申请_雅思托福培训 | 成都LED显示屏丨室内户外全彩led屏厂家方案报价_四川诺显科技 | 质检报告_CE认证_FCC认证_SRRC认证_PSE认证_第三方检测机构-深圳市环测威检测技术有限公司 | 沟盖板_复合沟盖板厂_电力盖板_树脂雨水篦子-淄博拜斯特 | 培训中心-翰香原香酥板栗饼加盟店总部-正宗板栗酥饼技术 | 手机游戏_热门软件app下载_好玩的安卓游戏下载基地-吾爱下载站 | 非标压力容器_碳钢储罐_不锈钢_搪玻璃反应釜厂家-山东首丰智能环保装备有限公司 | 旗帜网络笔记-免费领取《旗帜网络笔记》电子书 | 【化妆品备案】进口化妆品备案流程-深圳美尚美化妆品有限公司 | 元拓建材集团官方网站| 合肥宠物店装修_合肥宠物美容院装修_合肥宠物医院设计装修公司-安徽盛世和居装饰 | 多米诺-多米诺世界纪录团队-多米诺世界-多米诺团队培训-多米诺公关活动-多米诺创意广告-多米诺大型表演-多米诺专业赛事 | 大行程影像测量仪-探针型影像测量仪-增强型影像测量仪|首丰百科 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | 浙江红酒库-冰雕库-气调库-茶叶库安装-医药疫苗冷库-食品物流恒温恒湿车间-杭州领顺实业有限公司 | 中空玻璃生产线,玻璃加工设备,全自动封胶线,铝条折弯机,双组份打胶机,丁基胶/卧式/立式全自动涂布机,玻璃设备-山东昌盛数控设备有限公司 | 行星齿轮减速机,减速机厂家,山东减速机-淄博兴江机械制造 | 天品互联-北京APP开发公司-小程序开发制作-软件开发 | 紫外荧光硫分析仪-硫含量分析仪-红外光度测定仪-泰州美旭仪器 | 办公室家具公司_办公家具品牌厂家_森拉堡办公家具【官网】 | 骨密度仪-骨密度测定仪-超声骨密度仪-骨龄测定仪-天津开发区圣鸿医疗器械有限公司 | 艾乐贝拉细胞研究中心 | 国家组织工程种子细胞库华南分库 | 空调风机,低噪声离心式通风机,不锈钢防爆风机,前倾皮带传动风机,后倾空调风机-山东捷风风机有限公司 | ◆大型吹塑加工|吹塑加工|吹塑代加工|吹塑加工厂|吹塑设备|滚塑加工|滚塑代加工-莱力奇塑业有限公司 | 聚氨酯催化剂K15,延迟催化剂SA-1,叔胺延迟催化剂,DBU,二甲基哌嗪,催化剂TMR-2,-聚氨酯催化剂生产厂家 | 碎石机设备-欧版反击破-欧版颚式破碎机(站)厂家_山东奥凯诺机械 高低温试验箱-模拟高低温试验箱订制-北京普桑达仪器科技有限公司【官网】 | 仓储货架_南京货架_钢制托盘_仓储笼_隔离网_环球零件盒_诺力液压车_货架-南京一品仓储设备制造公司 | 塑料异型材_PVC异型材_封边条生产厂家_PC灯罩_防撞扶手_医院扶手价格_东莞市怡美塑胶制品有限公司 | 三氯异氰尿酸-二氯-三氯-二氯异氰尿酸钠-优氯净-强氯精-消毒片-济南中北_优氯净厂家 | 山东锐智科电检测仪器有限公司_超声波测厚仪,涂层测厚仪,里氏硬度计,电火花检漏仪,地下管线探测仪 | 国产离子色谱仪,红外分光测油仪,自动烟尘烟气测试仪-青岛埃仑通用科技有限公司 |