[JVM] - 继10进制的java.lang.Object查看之后
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查看之后的更多相关文章
- java中 8进制 10进制 2进制 16进制 相互转换
十进制转成十六进制: Integer.toHexString(int i) 十进制转成八进制 Integer.toOctalString(int i) 十进制转成二进制 Integer.toBinar ...
- java中16进制转换10进制
java中16进制转换10进制 public static void main(String[] args) { String str = "04e1"; String myStr ...
- 16进制转10进制 HDU-1720
A+B Coming Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- P1604_B进制星球(JAVA语言)
思路:BigInteger 五杀!利用BigInteger自带的进制转换. //第一次提交WA了几组数据,下载测试数据发现带字母的答案要转换为大写. 题目背景 进制题目,而且还是个计算器~~ 题目描述 ...
- 【九度OJ】题目1208:10进制 VS 2进制 解题报告
[九度OJ]题目1208:10进制 VS 2进制 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1208 题目描述: 对于一 ...
- 16进制字符串和byte数组进行相互转换\将10进制转换为任意进制
16进制字符串和byte数组进行相互转换 简介 1个byte对应8个bit,16进制使用4个bit,所以一个byte转成16进制,占用两位. JAVA代码 private static final c ...
- [转]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 ...
- C++ 中 int 转string, 以及10进制转2进制
感谢:http://blog.csdn.net/xiaofei2010/article/details/7434737 以及:http://www.cnblogs.com/nzbbody/p/3504 ...
- js用8421码实现10进制转2进制
今天早上突然心血来潮决定用 ''和js来撸一个进制转换.(纯属心血来潮,有兴趣的可以看看.) 我们知道,通过8421码.可以快速的得到一个10进制的2进制.如下图: 如上图所示:我们将10进制的 '1 ...
随机推荐
- pem转pfx
openssl req -new -key privkey.pem -out root.csr openssl x509 -req -days -sha1 -extensions v3_ca -sig ...
- R语言学习笔记:基础知识
1.数据分析金字塔 2.[文件]-[改变工作目录] 3.[程序包]-[设定CRAN镜像] [程序包]-[安装程序包] 4.向量 c() 例:x=c(2,5,8,3,5,9) 例:x=c(1:100) ...
- Hadoop集群安装-CDH5(5台服务器集群)
CDH5包下载:http://archive.cloudera.com/cdh5/ 架构设计: 主机规划: IP Host 部署模块 进程 192.168.254.151 Hadoop-NN-01 N ...
- javascript实现unicode与字符互相转换
javascript实现unicode与字符互相转换. <script language="javascript"> //手机检测 function checkMo ...
- 按照用户名和角色查询用户liferay
需求:当登录的用户输入用户的名字和角色的时候,模糊查询,然后就是Ajax的异步请求刷新界面 首先在一个工具类中写上一条你要写的sql语句代码如下: package com.ebizwindow.crm ...
- 134. Gas Station(数学定理依赖题)
There are N gas stations along a circular route, where the amount of gas at station i is gas[i]. You ...
- zw版【转发·台湾nvp系列Delphi例程】HALCON MaxImage2
zw版[转发·台湾nvp系列Delphi例程]HALCON MaxImage2 procedure TForm1.Button1Click(Sender: TObject);var image0, i ...
- webstorm的个性化设置settings
如何更改主题(字体&配色):File -> settings -> Editor -> colors&fonts -> scheme name.主题下载地址 如 ...
- python练习题-简单方法判断三个数能否组成三角形
python简单方法判断三个数能否组成三角形 #encoding=utf-8 import math while True: str=raw_input("please input thre ...
- 优化 MySQL: 3 个简单的小调整
我并不期望成为一个专家级的 DBA,但是,在我优化 MySQL 时,我推崇 80/20 原则,明确说就是通过简单的调整一些配置,你可以压榨出高达 80% 的性能提升.尤其是在服务器资源越来越便宜的当下 ...