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. 实现一个2008serve的IIS的虚拟目录(通过网络路径(UNC)的形式,共享在另外一个2008服务器上

    转载:http://www.cnblogs.com/top5/archive/2012/12/10/2812133.html 目的:实现一个2008serve的IIS的虚拟目录(通过网络路径(UNC) ...

  2. Sql Server索引的原理与应用

    SqlServer索引的原理与应用 转自:http://www.cnblogs.com/knowledgesea/p/3672099.html   索引的概念 索引的用途:我们对数据查询及处理速度已成 ...

  3. Python模块:配置文件解析器configparser

    版权声明:本文为博主皮皮http://blog.csdn.net/pipisorry原创文章,未经博主同意不得转载. https://blog.csdn.net/pipisorry/article/d ...

  4. 【深入理解javascript】原型

    1.一切都是对象 一切(引用类型)都是对象,对象是属性的集合 typeof函数输出的一共有几种类型,在此列出: function show(x) { console.log(typeof(x)); / ...

  5. PAT A+B for Polynomials[简单]

    1002 A+B for Polynomials (25)(25 分) This time, you are supposed to find A+B where A and B are two po ...

  6. sklearn_SVM

    一.用SVM实现二分类: 支持向量机分类器,是在数据空间中找出一个超平面作为决策边界,利用这个决策边界来对数据进行分类,并使分类误差尽量小的模型                             ...

  7. MySQL--教程

    登入登出 首先启动服务,然后 mysql -u root -p 命令输入密码登入. mysql退出三种方法:mysql > exit;mysql > quit;mysql > \q;

  8. 机器学习 python库 介绍

    开源机器学习库介绍 MLlib in Apache Spark:Spark下的分布式机器学习库.官网 scikit-learn:基于SciPy的机器学习模块.官网 LibRec:一个专注于推荐算法的j ...

  9. Linux系统——DHCP

    DHCP定义DHCP服务是负责IP.掩码.网关地址.DNS地址等自动分发的软件服务DHCP的分配方式(1)自动分配:分配到一个IP地址后永久使用(2)手动分配:由DHCP服务器管理员专门指定IP地址( ...

  10. Perl中的正则表达式(五)

    正则表达式(Regular Expression),在Perl里边通常也叫做模式(Pattern),用来表示匹配(或不匹配)某个字符串的特征模板. 使用简单模式:若模式匹配的对象是$_的内容,只要把模 ...