java如何输入2的31次方_续一: 如何优化Java程序:十进制转十六进制(2的31次方以内的正整数)...

改用switch-case后,代码如下:

package com.java;

import java.util.Scanner;

public class TestTransform {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

for(;;){

System.out.println(“请输入小于2的31次方的正整数:(輸入0結束程序)”);

int i = sc.nextInt();

if(i==0){

System.out.println(“程序结束!”);

break;

}else{

int num = 0;

if(i>=Math.pow(2, 0) && i

num = 1;

}else if(i>=Math.pow(2, 4) && i

num = 2;

}else if(i>=Math.pow(2, 8) && i

num = 3;

}else if(i>=Math.pow(2, 12) && i

num = 4;

}else if(i>=Math.pow(2, 16) && i

num = 5;

}else if(i>=Math.pow(2, 20) && i

num = 6;

}else if(i>=Math.pow(2, 24) && i

num = 7;

}else if(i>=Math.pow(2, 28) && i

num = 8;

}

switch(num){

case 8:

int i8 = i>>28 & 15;

String s8 = i8<=9 ? i8+”” : (char)(i8-10+’a’)+””;

System.out.print(s8);

case 7:

int i7 = i>>24 & 15;

String s7 = i7<=9 ? i7+”” : (char)(i7-10+’a’)+””;

System.out.print(s7);

case 6:

int i6 = i>>20 & 15;

String s6 = i6<=9 ? i6+”” : (char)(i6-10+’a’)+””;

System.out.print(s6);

case 5:

int i5 = i>>16 & 15;

String s5 = i5<=9 ? i5+”” : (char)(i5-10+’a’)+””;

System.out.print(s5);

case 4:

int i4 = i>>12 & 15;

String s4 = i4<=9 ? i4+”” : (char)(i4-10+’a’)+””;

System.out.print(s4);

case 3:

int i3 = i>>8 & 15;

String s3 = i3<=9 ? i3+”” : (char)(i3-10+’a’)+””;

System.out.print(s3);

case 2:

int i2 = i>>4 & 15;

String s2 = i2<=9 ? i2+”” : (char)(i2-10+’a’)+””;

System.out.print(s2);

case 1:

int i1 = i & 15;

String s1 = i1<=9 ? i1+”” : (char)(i1-10+’a’)+””;

System.out.println(s1);

}

}

}

}

}

自己写的,欢迎各位友友交流挑错,赐教调优方法!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
支持下载,一、数据类型 常量是有数据类型的 变量必须声明其数据类型 (1)划分: 1.基本数据类型(四类八种) 数值型: 整数型:bute、short、int、long 浮点型:float、double 字符型:char 布尔型:boolean 2.引用数据类型:除基本数据类型外的所有都是基本数据类型 数值型: 类型 所占空间 取值范围 默认值 字节型 byte 1个字节(8位) -128—127 0 短整型 short 2个字节(16位) -32768—32767 0 整形 int 4个字节(32位) +-2(的31次方)约21亿 0 长整形 long 8个字节(64位) -2(的63次方)—2(的63次方)-1 0 浮点型: 单精度浮点型 float 4个字节(32位) 1.4013E-45—3.4028E+38 0.0F 双精度浮点型 double 8个字节(64位) 4.9E-324—1.7977E+308 0.0D 字符型: 字符型 char 2个字节(16位) 0—2(的16次方)-1 \u0000 布尔型: 布尔型 boolean 1个字节(8位) ture,false false (2)整形常量常用的三种表现形式: 1.二进制 2.八进制:八进制的数以0开头 3.十六进制十六进制的以0x开头,0ffff:一个f代表4位 二、类型的换 1.自动换 2.强制换 在一个表达式中,先把所有数换成为级别最高的那个类型之后,再进行运算 byte,short,char 只要在表数范围中,不用强可以直接进行赋值。但是要是超出范围,就必须要进行强了 类型的优先级别:byte,short,char,int,long,float,double (低–高) 右>左–强制类型换 右<左–自动换 右=左–不用 三、运算符: 算术运算符: +,-,*,/,%,++,– 赋值运算符:= 关系运算符: >,<,>=,<=,==,!= instanceof 逻辑运算符: &&,||,!,^ 位运算符: &,|,^,~ , >>,<<,>>> 条件运算符:?:(三目运算符) 扩展赋值运算符:+=,-=,*=,/= 1.算数运算符(+,-,*,/,%,++,–) (1) 两个int类型数据运算,结果是int类型 两个操作数中只要有一个是double类型,那么结果是double类型的数据 (2) “+”号的作用 1.表示正数 2.相加运算 3.字符串拼接 在单独运算的时候 ++i,i++ 没有任何区别,都是加1操作相当于 i=i+1 i++;先运算,后加1(先运算后加减) ++i;先加1,后运算(先加减后运算) 2.逻辑运算符(&&,||,!,^) 逻辑非 ! 取反 逻辑异或 ^ 操作数一样,结果为false;操作数不一样,结果为true 逻辑与 & 只要有一个操作数是false,那么结果就是false 短路与 && 短路与跟逻辑与 结果会一模一样。只要第一个操作数是false,那么结果一定是false,那么后面的那个操作数就不用计算了。提高了 效率。 逻辑或 | 只要有一个是true,那么结果就是true 短路或 || 短路或与逻辑或 结果一模一样。只要第一个操作数是true,那么第二个就不用计算,结果就是true。同样为了提高效率。 3.关系运算符(>,<,>=,<=,==,!=) ==:比较变量时是判断数值是否相等;比较引用变量时是判断两个在堆中的存储的地址是否相等 equals:操作时是判断两个变量是否是对同一对象的引用,即对堆中的内容进行比较 在比较引用变量时: ==判断的对象的地址 equals判断的是对象的内容 4.位运算符( &,|,^,~ , >>,<<,>>>) 在操作十进制数的时候首先换为二进制的数进行操作 &:二进制都为1时为1,一个为0则为0 |:二进制都为0时为0,一个为1则为1 ^:二进制都为1时为0,一个为0则为1 ~:一个正数取~时,取反、减一、取反、加符号 一个负数取~时,直接取反
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值