重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

java八进制代码,java输出八进制

java编程实现给出一个3位八进制数求出对应的十进制数

以下是C++的:

成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的开化网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

#includeiostream

using namespace std;

int main()

{

int a,b,c,d;

cout"请输入待转换的数:";

cina;

//二进制分别计算每一位

if(a==0)couta;

b=a;c=0;d=1;

while(b!=0)

{

c+=(b%2)*d;//依次把b除以2的余数写在c的对应位置上

b=b/2;

d*=10;

}

coutcendl;

//八进制和十六进制使用格式化输出即可,oct表示八进制,hex表示十六进制

coutoctaendl;

couthexaendl;

}

java怎样将十进制转为八进制的数的编码

String oct = Integer.toOctalString( args);//括号里是要转换的十进制数

八进制和十六进制是字符串形式,转换出来后要有String类引用。

八进制字符串转为10进制

int s = Integer.parseInt(oct, 8);//第一个参数是要转换为10进制的字符串,第二个参数是表明字符串是几进制的数,这里是8进制。也可以是2,10,16.

java方法利用栈,将十进制数转换成八进制的数

import java.util.Scanner;

import java.util.Stack;/**

* 将十进制数转换为八进制数

*

* @author austin

*/

public class DecimalToOctalConvertor { /**

* @param args

*/

public static void main(String[] args) {

/*

* 接收一个用户从通过键盘输入的整数,作为要转换的十进制数

*/

Scanner reader = new Scanner(System.in);

System.out.print("请输入要转换的十进制数:");

int decimalNum = reader.nextInt(); /*

* 采用除8取余,从下至上的算法来计算八进制数:即用进制数除以8,然后将所得余数作为8进制数的低位数,再用所得的商继续除以8,以此类推,直到商为0为止

* 在这个过程中,每次的余数都需要保存到一个列表中,而且后添加到列表中的元素要先输出,即后进先出,因此采用栈结构来处理

*/

StackInteger octalStack = new StackInteger();

int temp = decimalNum;

do {

octalStack.push(temp % 8); // 将除以8所得的余数添加到栈中

temp /= 8; // 计算除以8所得的商

}

while (temp != 0); // 如果商不为0,则继续计算下去 /*

* 采用后进先出的方式输入栈中的元素,就得到了所要求的八进制数

*/

System.out.print("八进制:0");

while (!octalStack.isEmpty()) {

System.out.print(octalStack.pop());

}

System.out.println();

}

}

JAVA进(JAVA程序关于八进制和16进制)

只向你讲解一下整数部分的转换规则。至于小数部分,则比较复杂。

先说非十进制转十进制,比较简单:

将数从右到左编号,最右边的编号是0,右边第二位编号为1,依此类推.

将给定数的各位值乘以进制的编号次方,再得到的结果相加即可.说起来不好理解,举个例子:

二进制:10101

编号: 43210

计算:1*2^4 + 0*2^3 + 1*2^2 + 0*2^1 + 1*2^0

= 1 * 16 + 0*8 + 1*4 + 1*1 = 21(十进制)

十六进制:0xA9D3

编号:3210

计算:A*16^3 + 9*16^2 + D*16^1 + 3*16^0

=10*4096 + 9*256 + 13*16 + 3 = 43475(十进制)

不信可以用WINDOWS自带的计算器验证.(查看-科学型).

====

至于十进制转非十进制,比较麻烦,要用到 连续除法求余 的计算.

用给定的数除以进制(如8,16,2),将得到商和余数,再将商除以进制,又得到商和余数.一直除到商为0为止.

然后将 所有得到的余数 按照出现的 相反 的顺序排列起来,即得到结果.

举例:

124(十进制)转二进制,连续除以"2",运算如下:

被除数/进制 = 商……余数

124 /2 = 62……0

62 /2 = 31……0

31 /2 = 15……1

15 /2 = 7……1

7 /2 = 3……1

3 /2 = 1……1

1 / 2 = 0……1

将所有出现的余数从后向前排列,就得到最后结果为:1111100

同样,将其转为八进制:

124 /8 = 15……4

15 /8 = 1……7

1 /8 = 0……1

结果即为174(八进制).

同样可在计算器上试验一下.

十六进制转八进制 java

package hextooctal;

import java.util.HashMap;

public class HexToOctal {

public static void main(String[] args) {

String str = hexToOctal("1a5f");

System.out.println(str);

}

//十六进制转八进制

public static String hexToOctal(String str) {

String s = hexToBinary(str);

//System.out.println(s);

String s1 = binaryHandle(s);

//System.out.println(s1);

return binaryToOctal(s1);

}

//十六进制转成二进制

public static String hexToBinary(String hexNum){

char[] chs = {'0','1'};

String str = new String("0123456789ABCDEF");

char[] charArray = hexNum.toUpperCase().toCharArray();

int pos = charArray.length*4;

char[] binaryArray = new char[pos];

for (int i = charArray.length - 1; i =0; i--) {

int temp = str.indexOf(charArray[i]);

for(int j=0;j4;j++){

binaryArray[--pos] = chs[temp 1];

temp = temp 1;

}

}

return new String(binaryArray);

}

//二进制转成八进制

public static String binaryToOctal(String binary){

HashMapString,Character map = new HashMapString, Character();

map.put("000", '0');

map.put("001", '1');

map.put("010", '2');

map.put("011", '3');

map.put("100", '4');

map.put("101", '5');

map.put("110", '6');

map.put("111", '7');

int pos = binary.length()/3;

char[] octArray = new char[pos];

for(int i = binary.length();i0;i-=3){

String s = binary.substring(i-3,i);

octArray[--pos] = map.get(s);

}

return new String(octArray);

}

//处理二进制字符串

public static String binaryHandle(String binary){

String str = binary.substring(binary.indexOf('1'));

int len = str.length();

if(len%3==0)

return str;

else if(len%3 == 1)

return "00"+str;

else

return "0" + str;

}

}

求Java大神,十进制转八进制,请问我的代码该怎么改

十进制转八进制JDK有提供API,

十进制转八进制最简单的方法:

System.out.println("10的八进制="+Integer.toOctalString(10));

System.out.println("10的二进制="+Integer.toBinaryString(10));

System.out.println("10的八进制="+Integer.toOctalString(10));

System.out.println("10的十六进制="+Integer.toHexString(10));


当前名称:java八进制代码,java输出八进制
文章起源:http://cqcxhl.com/article/hoeoee.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP