我是靠谱客的博主 温柔过客,最近开发中收集的这篇文章主要介绍java算出十进制中0和1的个数_剑指Offer(Java版):把十进制数字用A~Z表示成二十六进制。...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

这是一道关于进制的题目,其本质是把十进制数字用A~Z表示成二十六进制。

A是65,A到Z是26个字母,A对应1,相当于26*0+65-65+1=1;AB则是26*1+66-65+1=28,ABC则是26*28+67-65+1=731,

package cglib;

public class List1

{

public static int numberTransform2(String str)

{

char[] strArray = str.toCharArray();

int num = 0;

if(strArray.length < 0)//如果没有输入字符,则报错。

{

System.out.println("没有输入字符");

return -1;

}

int sum = 0;

for(int i =0; i < strArray.length; i++)

{

System.out.println("i="+i+",strArray[i]="+strArray[i]);

System.out.println("((int)(strArray[i] -'A'))="+((int)(strArray[i] -'A')));

int temp = strArray[i] - 'A';

System.out.println("减A的值后temp="+temp);

if(temp >= 26 || temp < 0)

{

System.out.println("字符不合规范");

return -1;

}

sum = 26*sum + temp + 1;

//num = num * 26 + ((int)(strArray[i] -'A') +1);

//System.out.println("运算后num="+num);

System.out.println("运算后sum="+sum);

}

return sum;

}

public static void main(String[] args) {

System.out.println(numberTransform2("AB"));

}

}

输出:

i=0,strArray[i]=A

((int)(strArray[i] -'A'))=0

减A的值后temp=0

运算后sum=1

i=1,strArray[i]=B

((int)(strArray[i] -'A'))=1

减A的值后temp=1

运算后sum=28

28

最后

以上就是温柔过客为你收集整理的java算出十进制中0和1的个数_剑指Offer(Java版):把十进制数字用A~Z表示成二十六进制。...的全部内容,希望文章能够帮你解决java算出十进制中0和1的个数_剑指Offer(Java版):把十进制数字用A~Z表示成二十六进制。...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部