cmd清除命令:cls

之后查阅了其它博客,发现这位大神同样也在做JVM,并且我很希望用它的10进制转16进制类来测试一下该解析的10进制是否对应着Object的16进制呢?

这位大神的10进制转16进制代码:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader; public class Test {
public static String txt2String(File file){
StringBuilder result = new StringBuilder();
try{
BufferedReader br = new BufferedReader(new FileReader(file));//构造一个BufferedReader类来读取文件
String s = null;
while((s = br.readLine())!=null){//使用readLine方法,一次读一行
result.append(System.lineSeparator()+s);
}
br.close();
}catch(Exception e){
e.printStackTrace();
}
return result.toString();
}
public static int hixTo(StringBuffer sb){
int sum=0;
if(sb.charAt(0)>=48&&sb.charAt(0)<=57){
sum+=(sb.charAt(0)-48)*16;
}else{
sum+=((sb.charAt(0)-96)+9)*16;
}
if(sb.charAt(1)>=48&&sb.charAt(1)<=57){
sum+=(sb.charAt(1)-48);
}else{
sum+=((sb.charAt(1)-96)+9);
}
return sum;
}
public static void main(String[] arts){
File file = new File("D:\\yff.txt");
String str=txt2String(file);
StringBuffer sbBefore=new StringBuffer(str);
StringBuffer sbAfter=new StringBuffer();
for(int i=0;i<sbBefore.length();i++){
if((sbBefore.charAt(i)>=48&&sbBefore.charAt(i)<=57)||(sbBefore.charAt(i)>=97&&sbBefore.charAt(i)<=122)){
//System.out.print(sbBefore.charAt(i));
sbAfter.append(sbBefore.charAt(i));
}
}
System.out.println(sbAfter);
System.out.println();
for(int i=0;i<sbAfter.length();i=i+2){
System.out.print(hixTo(new StringBuffer(""+sbAfter.charAt(i)+sbAfter.charAt(i+1)))+" ");
if(i!=0&&i%100==0)
System.out.println();
}
}
}

这样精湛的代码着实让人敬佩,我翻看了下之前我写的一些类似算法的解析:

import java.util.ArrayList;
public class Fracts { public static String convertFrac(long[][] lst) {
long bigFrac = 1;
long result = 1;
// int count = 0;//计算是否还可以
int fracNum = 0;//原始分母数量
int maxDLen = 0;
ArrayList<long[]> divisor = new ArrayList();
ArrayList<Long> members = new ArrayList<Long>();
ArrayList<Long> fracs = new ArrayList<Long>();
// lst是个long型的二维数组,里面的每组元素是分子和分母的组合形式
// 获取其分母的公共分母,(分子也按需更改),返回三组数据的字符串形式
for (int i = 0; i < lst.length; i++) {
for (int j = 0; j < 2; j++) {
if(j==1) { //开始获取分母
//从上面if 开始进来了 所有的分母 多个数的最小公倍数求法:
//是素数的保持素数,不是素数的分解
long[] fracArray = new long[1];
long[] fracArray2 = new long[1];
int q;
int lastIndex = 0;
//分解质因数
long frac = lst[i][j];//获取了每个二维数组的元素
fracs.add(frac);
int count = 0; //[计数]看看这个数有共几个质因数
for(q=2;q<frac;q++) { if(frac%q==0) {
//如果一个数能分解,就必定还有另一个因数,所以数组大小必须大于长度1
// System.out.println("q:"+q);
//得到了这个质因数的值(多个,需要数组存放)
//如果对每个数值的质因数,生成不同的数组或集合存放呢?
count++;//有一个因数分解时,count就递增 // System.out.println(""+fracArray.length+":"+count);
if(fracArray.length<=count) {
fracArray = new long[count+1];//变更数组大小
lastIndex=count;
for(int h=0;h<fracArray2.length;h++) {
fracArray[h] = fracArray2[h];
}
} fracArray[count-1] = q; //将质因数添加到数组
// System.out.println("q:"+q);
fracArray2 = fracArray;
frac = frac/q;
// System.out.println("frac:"+frac);
q=q/q; // } }
//将最后的因数装入数组最后
fracArray2[lastIndex] =q;
if(count==0) {
//这是个素数
fracArray2[0]=frac;
} divisor.add(fracArray2);
if(fracArray2.length>maxDLen) {
maxDLen = fracArray2.length;
} }
if(j==0) {
long mem = lst[i][j];
members.add(mem);
} } }
long[][] resultMatrixArr = new long[lst.length][maxDLen];
long[][] resultMatrixArr2 = new long[maxDLen][lst.length];
//将多个分母的分解的质因数装入二维数组,以最长质因数数组长度为二维矩阵宽度.原lst.length为高度.
for(int l=0;l<lst.length;l++) {
for(int p=0;p<divisor.get(l).length;p++) {
resultMatrixArr[l][p]=divisor.get(l)[p];
}
} for(int aa=0;aa<lst.length;aa++) {//矩阵高
// System.out.println(resultMatrixArr[aa]);
int grow = 0;
for(int cc=0;cc<maxDLen;cc++) {//矩阵宽
//获取每行的unique的集合,去除每行存在的重复数字,保留唯一一个.
long[] rowNum = resultMatrixArr[aa]; //0,0; 0,1; 0,2
grow=cc;
while((grow+1)<rowNum.length) {//如果cc+1不是最大数组下标 则+1
grow++;
if(rowNum[cc]==rowNum[grow]) {
resultMatrixArr[aa][grow]=0;
}
}
//将二维数组倒置装入另一个
resultMatrixArr2[cc][aa] = resultMatrixArr[aa][cc];
}
} //竖向去除

[JVM] - 继10进制的java.lang.Object查看之后的更多相关文章

  1. java中 8进制 10进制 2进制 16进制 相互转换

    十进制转成十六进制: Integer.toHexString(int i) 十进制转成八进制 Integer.toOctalString(int i) 十进制转成二进制 Integer.toBinar ...

  2. java中16进制转换10进制

    java中16进制转换10进制 public static void main(String[] args) { String str = "04e1"; String myStr ...

  3. 16进制转10进制 HDU-1720

    A+B Coming Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  4. P1604_B进制星球(JAVA语言)

    思路:BigInteger 五杀!利用BigInteger自带的进制转换. //第一次提交WA了几组数据,下载测试数据发现带字母的答案要转换为大写. 题目背景 进制题目,而且还是个计算器~~ 题目描述 ...

  5. 【九度OJ】题目1208:10进制 VS 2进制 解题报告

    [九度OJ]题目1208:10进制 VS 2进制 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1208 题目描述: 对于一 ...

  6. 16进制字符串和byte数组进行相互转换\将10进制转换为任意进制

    16进制字符串和byte数组进行相互转换 简介 1个byte对应8个bit,16进制使用4个bit,所以一个byte转成16进制,占用两位. JAVA代码 private static final c ...

  7. [转]as3 算法实例【输出1 到最大的N 位数 题目:输入数字n,按顺序输出从1 最大的n 位10 进制数。比如输入3,则输出1、2、3 一直到最大的3 位数即999。】

    思路:如果我们在数字前面补0的话,就会发现n位所有10进制数其实就是n个从0到9的全排列.也就是说,我们把数字的每一位都从0到9排列一遍,就得到了所有的10进制数. /** *ch 存放数字 *n n ...

  8. C++ 中 int 转string, 以及10进制转2进制

    感谢:http://blog.csdn.net/xiaofei2010/article/details/7434737 以及:http://www.cnblogs.com/nzbbody/p/3504 ...

  9. js用8421码实现10进制转2进制

    今天早上突然心血来潮决定用 ''和js来撸一个进制转换.(纯属心血来潮,有兴趣的可以看看.) 我们知道,通过8421码.可以快速的得到一个10进制的2进制.如下图: 如上图所示:我们将10进制的 '1 ...

随机推荐

  1. ifconfig 查看网卡信息

    [root@linux-node- sss]# ifconfig eno16777736: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu inet ...

  2. 001-GPG入门教程

    对信息加密和解密.需要用到GnuPG软件(简称GPG),它是目前最流行.最好用的加密工具之一. 一.什么是GPG 要了解什么是GPG,就要先了解PGP. 1991年,程序员Phil Zimmerman ...

  3. spring boot 自定义过滤器链

    spring boot 会按照order值的大小,从大到小的顺序来依次过滤. 贴下代码: package com.osp.ucenter; import org.springframework.boo ...

  4. JMS规范与Kafka

    一.为什么需要消息队列 消息队列的核心作用就是三点:解耦一个系统中各个子模块的互相绑定与依赖,异步执行后台耗时逻辑,并行处理一个请求中涉及的多个操作. 以我们常见的下订单场景来说明,我们熟悉的淘宝,后 ...

  5. 尝试.Net Core—使用.Net Core + Entity FrameWork Core构建WebAPI(一)

    想尝试.Net Core很久了,一直没有时间,今天回家,抛开一切,先搭建一个.Net Core的Demo出来玩玩. 废话少说,咱直奔主题: 一.开发环境 VS2015 Update3 Microsof ...

  6. 大神的博客地址liferay

    http://www.huqiwen.com/category/technology-share/liferay/

  7. 认识GMT和UTC时间-附带地理知识

    GMT-格林尼治标准时 GMT 的全名是格林威治标准时间或格林威治平时 (Greenwich Mean Time),这个时间系统的概念在 1884 年确立,由英国伦敦的格林威治皇家天文台计算并维护,并 ...

  8. JavaScript: apply 方法 详解(转)——非常好

    转载自  http://www.cnblogs.com/KeenLeung/archive/2012/11/19/2778229.html 我在一开始看到javascript的函数apply和call ...

  9. ADO.NET知识学习总结

      1. 概述 使用的命名空间: System.Data.SqlClient 连接字符串    服务器/数据库实例+数据库名称+安全信息+用户名+密码  可参考http://www.connectio ...

  10. PLSQL入门:cursor传参,loop fetch使用,if使用,单引号字符表示

    1.cursor传入参数 定义:cursor [cursor变量名称]([参数名称] [参数类型]) IS [SQL语句,可以使用传入参数] 例子:    cursor moTypeNames(dom ...