问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

十进制转换成二进制,八进制,十六进制

发布网友 发布时间:2022-05-29 20:35

我来回答

2个回答

热心网友 时间:2023-11-23 13:03

用下面的程序转换,你只需要输出成表格的形式就行了!!!

package com.test.numsys;

import java.util.*;

/**
* 数值转换 十进制 二进制 八进制 十六进制
*/
public class NumSys {

public static void main(String[] args) {

NumSys ns = new NumSys();
System.out.println("十进制100转换为二进制为:" + ns.decimalToBinary(100));//1100100

System.out.println("二进制1100100转换为八进制为: " + ns.binaryToOctal(1100100));// 144

System.out.println("二进制10110000011101转换为十六进制为:" + ns.binaryToHex("10110000011101")); //2C1D

System.out.println("十进制100转换为八进制:" + ns.DecimalToOctal(100));

System.out.println("十进制15400转换为十六进制:" + ns.DecimalToHex(15400));
}

//没有实现小数部分的转化 十进制转换为二进制
public long decimalToBinary(int a) {

long binary = 0L;
int[] binaryArr = new int[64];
int i = 0;
do {
binaryArr[i] = a%2;
a = a/2;
i ++;
} while(a != 0);

String s = "";
for(int j = binaryArr.length-1; j>=0; j--) {
s+=binaryArr[j] + "";
}

binary = Integer.parseInt(s);

return binary;
}

//二进制转换为八进制
public String binaryToOctal(long a) {
String octal = "";
String s = a +"";
char [] c_temp = (a+"").toCharArray();

int temp = 3 - c_temp.length%3;
for(int i = 0; i<temp ; i++) {
s = "0" + s;
}

char[] c2 = s.toCharArray();
List<String> list = new ArrayList<String>();

for(int i = 0 ; i < c2.length ; i += 3 ) {
String stemp = c2[i] +""+ c2[i+1] +""+ c2[i+2];

if(stemp.equals("000")) {
list.add("0");
} else if(stemp.equals("001")) {
list.add("1");
} else if(stemp.equals("010")) {
list.add("2");
} else if(stemp.equals("011")) {
list.add("3");
} else if(stemp.equals("100")) {
list.add("4");
} else if(stemp.equals("101")) {
list.add("5");
} else if(stemp.equals("110")) {
list.add("6");
} else if(stemp.equals("111")) {
list.add("7");
}
}

for(Iterator<String> it = list.iterator(); it.hasNext();) {
octal += it.next();
}

return octal;
}

public String binaryToHex(String a) {
String hex = "";
String s = a;
char [] c_temp = (a+"").toCharArray();

int temp = 4 - c_temp.length%4;
for(int i = 0; i<temp ; i++) {
s = "0" + s;
}

//System.out.println("-----"+s);

char[] c2 = s.toCharArray();
List<String> list = new ArrayList<String>();

for(int i = 0 ; i < c2.length ; i += 4 ) {
String stemp = c2[i] +""+ c2[i+1] +""+ c2[i+2] +""+ c2[i+3];

if(stemp.equals("0000")) {
list.add("0");
} else if(stemp.equals("0001")) {
list.add("1");
} else if(stemp.equals("0010")) {
list.add("2");
} else if(stemp.equals("0011")) {
list.add("3");
} else if(stemp.equals("0100")) {
list.add("4");
} else if(stemp.equals("0101")) {
list.add("5");
} else if(stemp.equals("0110")) {
list.add("6");
} else if(stemp.equals("0111")) {
list.add("7");
} else if(stemp.equals("1000")) {
list.add("8");
} else if(stemp.equals("1001")) {
list.add("9");
} else if(stemp.equals("1010")) {
list.add("A");
} else if(stemp.equals("1011")) {
list.add("B");
} else if(stemp.equals("1100")) {
list.add("C");
} else if(stemp.equals("1101")) {
list.add("D");
} else if(stemp.equals("1110")) {
list.add("E");
} else if(stemp.equals("1111")) {
list.add("F");
}
}

for(Iterator<String> it = list.iterator(); it.hasNext();) {
hex += it.next();
}

return hex;
}

//十进制转换为八进制
public String DecimalToOctal(int d)
{
String o = "";
if (d < 8)
{
o = d+"";
}
else
{
int c;

int s=0;
int n=d;
while (n >= 8)
{
s++;
n = n / 8;
}
int[] m = new int[s];
int i = 0;
do
{
c = d / 8;
m[i++] = d % 8;
d = c;
} while (c >= 8);
o = d+"";
for (int j = m.length - 1; j >= 0; j--)
{
o += m[j];
}
}
return o;
}

//十进制转十六进制
public String DecimalToHex(int d)
{
String x = "";
if (d < 16)
{
x = chang(d);
}
else
{
int c;
int s = 0;
int n = d;
while (n >= 16)
{
s++;
n = n / 16;
}
String [] m = new String[s];
int i = 0;
do
{
c = d / 16;
m[i++] = chang(d % 16);//判断是否大于10,如果大于10,则转换为A~F的格式
d = c;
} while (c >= 16);
x = chang(d);
for (int j = m.length - 1; j >= 0; j--)
{
x += m[j];
}
}
return x;
}

//判断是否为10~15之间的数,如果是则进行转换
public String chang(int d)
{
String x = "";
switch (d)
{
case 10:
x = "A";
break;
case 11:
x = "B";
break;
case 12:
x = "C";
break;
case 13:
x = "D";
break;
case 14:
x = "E";
break;
case 15:
x = "F";
break;
default:
x = d+"";
break;
}
return x;
}

}

热心网友 时间:2023-11-23 13:03

不好意思。。我是将十进制转换成二进制,八进制,十六进制字符串!
#include <iostream.h>
#include <string.h>
char* d2x(int d,char*x,int mode);

void main()
{
int d=42;
char b[10];
char o[10];
char h[10];

//d2x(d,x,16);
cout<<"decimal \t binary \t octal \t hexadecimal"<<endl;
for(int i=1;i<=256;i++)
{
memset(b,0,10);
memset(o,0,10);
memset(h,0,10);
cout<<i<<" \t\t "<<d2x(i,b,2)<<" \t\t "<<d2x(i,o,8)<<" \t\t "<<d2x(i,h,16)<<endl;
}

}
char* d2x(int d,char*x,int mode)
{

char temp[2];
temp[1]=0;
do
{
if(d%mode>9)
{
temp[0]=(d%mode)%10+'A';
}else
temp[0]=d%mode+'0';
d=d/mode;
strcat(x,temp);
}while(d!=0);
strcpy(x,strrev(x));

return x;

}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
高考为什么不能补报志愿? 帮我翻译一句话“不管多久以后,不管世界变成什么样子,我都是哪个最骄傲... 温州到周口的大巴车经过台州路桥客运中心那里吗? 微信怎么设置看不到微信号 不想让微信号显示出来怎么办 2021年大学教师资格证报名费用 大埔教师资格证报名网 大埔县教育局办教师资格证需要准备哪些资料? 深情触摸2016百度云链接 求深情触摸百度云分享 炒菜为什么会这么香? 几个数的进制转换,高分,谢谢了。 求武侠奇幻类广播剧,五部以上可以么,谢谢。 不要bl的,拒绝yy shihunshexue@qq.com 下列各句中没有语病的一句是A早上出门的时候,他看到建筑工地上的挖掘机、装载机和十几辆翻斗车正在工作 中国有多少台挖掘机?装载机? 中国有多少台挖掘机? 沙漠可以利用吗? 需要安排多少台挖掘机,多少辆汽车? 光明北路,橡树湾和石油家园之间,在修路挖土,每天三台挖掘机,数十辆大车到深夜还不停的工作,扰民。 我朋友结婚用了十台挖机去接亲,女放家老丈人说不够大气,求求大家说说什么样才大气啊,快快还有几天就要 大量别墅项目侵占滇池保护区,滇池该由谁来保护? 三十五岁女、月经很少吃什么药能让月经多来点 我吃达英35月经怎么一个月比一个月少阿怎么办 本人35周岁近三个越来月经量很少,有淤血块颜色发黑,... 老牛死后留下牛角,主人无奈拿去街上卖,次日家门前停10辆挖机吗? 吃一个月的达英35月经量比以前少很多 经期35-40天,出血量少,没啥明显症状,这是怎么回事? 35天才来月经,量少呈咖啡色 吃了达英35后为什么月经量会变少 为什么要在蟹田里养螃蟹 新郑龙湖哪里有回收黄金的高价回收黄金首饰钻石 2014五月新郑老凤祥黄金价格 魔兽jass里字符串和整数相互转换的具体算法 去新郑黄金大道坐郑州地铁2号线,哪一站下车最近? 如何用USB口下载十六进制的hex到单片机学习板,不用com,(AT89S52) 新郑 哪里有黄金 开户的公司??/?、???/? 大排档好吃的炒米粉在家里是如何做的呢? 新郑市,哪里有回收黄金首饰的…… 新郑市兴业黄金饰品有限公司怎么样? 新郑黄金大道两个物流园在哪个地方? 新郑龙湖金大福回收黄金么 我的鼠标指针方案没了,谁能把注册表导出一份发上来啊!!路径是HKEY_CURRENT_USER&#92;Control Panel&#92;Cursors 新郑统一黄金外汇7万月分红7千是骗人的吗 新郑市新郑县上海老庙黄金是几月几号店庆 郑州黄金价格最贵是哪一年? 想知道: 郑州市 新郑市黄金大道 在哪 郑州市黄金价格 清关的顺序是怎么来的 度娘 谷哥同人文 生日蜡烛代表几岁