public class Tools extends TestCase
{
/** 10进制转16进制 */
public static String algorismToHex(String source)
{
String binary = algorismToBinary(source);
int len = binary.length();
StringBuilder builder = new StringBuilder();
for (int i = len; i >= 4; i = i - 4)
{
builder.append(change(binary.substring(i - 4, i)));
}
if (len % 4 != 0)
{
builder.append(change(binary.substring(0, len % 4)));
}
return builder.append("x0").reverse().toString();
}
public static void main(String[] args)
{
System.out.println(algorismToHex("100"));
System.out.println(algorismToHex("29063"));
System.out.println(algorismToHex("29064"));
System.out.println(algorismToHex("29092"));
}
public static String change(String s)
{
String str = binaryToAlgorism(s);
if ("10".equals(str))
{
return "a";
}
else if ("11".equals(str))
{
return "b";
}
else if ("12".equals(str))
{
return "c";
}
else if ("13".equals(str))
{
return "d";
}
else if ("14".equals(str))
{
return "e";
}
else if ("15".equals(str))
{
return "f";
}
else
{
return str;
}
}
/** 十进制转二进制 */
public static String algorismToBinary(String source)
{
Integer in = Integer.valueOf(source);
StringBuilder builder = new StringBuilder();
while (in != 0)
{
builder.append(in % 2 == 0 ? "0" : "1");
in = in / 2;
}
return builder.reverse().toString();
}
/** 二进制转十进制 */
public static String binaryToAlgorism(String binary)
{
int count = 0;
int length = binary.length();
for (int i = length - 1; i >= 0; i--)
{
int num = Integer.valueOf(new String(new char[] {binary.charAt(i)}));
if (num == 1)
count += show(length - i - 1);
}
return String.valueOf(count);
}
public void testAlgorismToBinary()
{
String str = "7817";
Integer in = Integer.valueOf(str);
StringBuilder builder = new StringBuilder();
while (in != 0)
{
builder.append(in % 2 == 0 ? "0" : "1");
in = in / 2;
}
String s = builder.reverse().toString();
int count = 0;
int length = s.length();
for (int i = length - 1; i >= 0; i--)
{
int num = Integer.valueOf(new String(new char[] {s.charAt(i)}));
if (num == 1)
count += show(length - i - 1);
}
System.out.println(count);
assertEquals(str, String.valueOf(count));
}
public static int show(int i)
{
int count = 1;
for (int k = 0; k < i; k++)
{
count = count * 2;
}
return count;
}
}
分享到:
相关推荐
适用于在通讯时可以用到的实例,16进制转换为二进制,已经测试OK.
* 八进制转换为十六进制:先将八进制数转换为二进制数,再将二进制数转换为十六进制数。 * 十六进制转换为八进制:先将十六进制数转换为二进制数,再将二进制数转换为八进制数。 五、总结复习 进制数之间的转换是...
labview 十进制转换为二进制,比较简单的一种方法,还可以用在其他方面
循环的十进制转换为二进制,方便读者学习参考。
汇编语言各进制(二进制,八进制,十进制,十六进制)之间的转换,一网打尽,包括源码,word文档和PDF文档
C语言-顺序栈实现十进制转换为二进制-八进制-十六进制
本文实例讲述了C#实现把图片转换成二进制以及把二进制转换成图片的方法。分享给大家供大家参考,具体如下: private void button1_Click(object sender, EventArgs e) { string path = this.textBox1.Text; byte...
适用于将二进制数转换为十进制,A为十进制,B为二进制。{A,B}每次左移一位,判断A的每四位是否>4,若大于四则+3,否则保持不变;B为多少位二进制数则左移多少次。最终A是B转换成十进制的数。代码为32位二进制数转换...
二进制转换为十进制,十进制转换为二进制,控制台应用程序
本文实例讲述了C语言用栈实现十进制转换为二进制的方法。分享给大家供大家参考,具体如下: #include #include #include<math.h> #include #include process.h #define SIZE 100 #define STACKINCREMENT 10 #...
用栈实现十进制转换成二进制(c语言)用栈实现十进制转换成二进制(c语言)用栈实现十进制转换成二进制(c语言)
十进制转换为二进制,并且是以逗号分隔的八位二进制数值,如果能帮助迷茫中的大家,就非常好了,希望能给迷茫中的你们带来希望
二进制数组转换为二进制字符串 将二进制数组转换为十六进制字符串 将十六进制转换为二进制字节数组 将十六进制转换为二进制字符串
C++中没有直接以二进制形式输出的功能,本程序实现了C++中十进制转换为二进制的功能
SQL语句写的各进制之间互相转换,如二进制转换十进制,八进制转换十六进制等等
二进制与十进制转换PPT学习教案 一、十进制系统 十进制系统是一种基于10的数制系统,具有10个数字符号:0, 1, 2, 3, 4, 5, 6, 7, 8, 9。各位权是以10为底的幂。进位规则是逢10进1,借1当10。例如,十进制数315.76...
正整数的十进制转换二进制 将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取除得的余数,即换算为二进制数的结果。只需记住要点:除二取余,倒序排列。 由于计算机内部表示数的字节...
超强进制转换工具 二进制 八进制 十进制 十六进制转换
10. 二进制整数1111111111转换为十进制数为1023,二进制小数0.111111转换成十进制数为0.984375。 在计算机中,实践题是非常重要的一部分。通过实践题,可以更好地理解和掌握进制转换的知识。 计算机各种进制转换是...