每日学到 13

编程入门 行业动态 更新时间:2024-10-08 14:39:46

每日学到 13

每日学到 13

写代码的思路和简化代码真的很重要,看到别人优秀的代码真的很兴奋,原来可以这样写。

先放上自己写的代码

import java.util.Scanner;public class Demo6 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入一个整数:");int num1 = sc.nextInt();int num2 = num1;int num3 = num1;int[] array1 = new int[100];int count1 = 0;for (int i = 0;;i++) {array1[i] = num1%2;if (num1/2==0) {break;}num1 /= 2;count1++;}System.out.println(count1);System.out.print("二进制为:");for (int i = count1; i >=0; i--) {System.out.print(array1[i]);}int[] array2 = new int[100];int count2 = 0;for (int i = 0;;i++) {array2[i] = num2%8;if (num2/8==0) {break;}num2 /= 8;count2++;}System.out.print("八进制为:");for (int i = count2; i >=0; i--) {System.out.print(array2[i]);}int[] array3 = new int[100];int count3 = 0;for (int i = 0;;i++) {array3[i] = num3%16;if (num3/16==0) {break;}num3 /= 16;count3++;}System.out.print("十六进制为:");for (int i = count3; i >=0; i--) {if (array3[i]==10) {System.out.print("A");}else if (array3[i]==11) {System.out.print("B");}else if (array3[i]==12) {System.out.print("C");}else if (array3[i]==13) {System.out.print("D");}else if (array3[i]==14) {System.out.print("E");}else if (array3[i]==15) {System.out.print("F");}else {System.out.print(array3[i]);}}}
}

再放一个从CSDN上找到的代码

import java.util.Scanner;public class Demo00 {public static void main(String[] args) {System.out.println("请输入一个整数");Scanner sc = new Scanner(System.in);int number = sc.nextInt();// 转换为二进制int[] numEr = new int[100];int indexEr = 0;for (int i = number; i > 0; i /= 2, indexEr++) {numEr[indexEr] = i % 2;}System.out.println("二进制:");for (int i = indexEr - 1; i >= 0; i--) {System.out.print(+numEr[i]);}System.out.println();// 转换为八进制int[] numBr = new int[100];int indexBr = 0;for (int i = number; i > 0; i /= 8, indexBr++) {numBr[indexBr] = i % 8;}System.out.println("八进制:");for (int i = indexBr - 1; i >= 0; i--) {System.out.print(numBr[i]);}System.out.println();// 转换为十六进制int[] nums = new int[100];int index = 0;for (int i = number; i > 0; i /= 16, index++) {nums[index] = i % 16;}System.out.println("十六进制:");for (int i = index - 1; i >= 0; i--) {if (nums[i] == 10) {System.out.println("A");} else if (nums[i] == 11) {System.out.println("B");} else if (nums[i] == 12) {System.out.println("C");} else if (nums[i] == 13) {System.out.println("D");} else if (nums[i] == 14) {System.out.println("E");} else if (nums[i] == 15) {System.out.println("F");} else {System.out.print(nums[i]);}}}
}

虽然两段代码都能实现将十进制转变为二进制,八进制,十六进制,但是简洁度,清晰度,易理解度,真的比我写的好的太多了,将输入的number直接赋值给i,然后让i进行循环条件判断,以及迭代操作。而我直接将输入的number进行变化,导致我又需要设置一个新变量去记录初始的number值,又因为我是直接使用number进行循环操作的,并且没有使用循环条件,所以我这是死循环,在循环操作中设置了一个条件,当满足这个条件时再break,我这样写,写了很多重复代码。看了下面的这个代码,真的学习到了。

更多推荐

每日学到 13

本文发布于:2024-02-28 05:52:18,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1768416.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!