自己实现10进制转2进制和16进制

 1 public class Test {
 2
 3     public static void main(String[] args) {
 4         System.out.println(toBinary(9));
 5         System.out.println(toHex(559));
 6         System.out.println(Integer.toBinaryString(9));
 7         System.out.println(Integer.toHexString(559));
 8       /*1001
 9         22F
10         1001
11         22f*/
12     }
13
14     public static String toBinary(int n){
15         StringBuilder temp = new StringBuilder();
16         while(n/2 >=1 || n%2 == 1){//除2取余, (|| n%2 == 1) 在次为了补上最后一个0或者1
17             temp.append(n%2);
18             n = n/2;
19         }
20         return temp.reverse().toString();
21     }
22     /**
23      10进制转16进制:
24         将给定的十进制整数除以基数16,余数便是等值的16进制的最低位。
25         将上一步的商再除以基数16,余数便是等值的16进制数的次低位。
26         重复上一步骤,直到最后所得的商等于0为止。各次除得的余数,便是16进制各位的数,最后一次的余数是最高位
27      */
28     public static String toHex(int n){
29         /*思路:除16取余*/
30         StringBuilder temp = new StringBuilder();
31         while(n/16 >= 1){
32             int aa = n/16;
33             int bb = n%16;
34             //0123456789 10 11 12 13 14 15
35             //0123456789 A  B  C  D  E  F
36             String str = "";
37             if(bb == 10){
38                 str = "A";
39             }else if(bb == 11){
40                 str = "B";
41             }else if(bb == 12){
42                 str = "C";
43             }else if(bb == 13){
44                 str = "D";
45             }else if(bb == 14){
46                 str = "E";
47             }else if(bb == 15){
48                 str = "F";
49             }else{
50                 str = bb+"";
51             }
52             temp.append(str);
53             n = aa;
54             if(n/16 < 1){//补上最后一位
55                 temp.append(n);
56             }
57         }
58         return temp.reverse().toString();
59     }
60 }
时间: 2024-10-30 17:12:24

自己实现10进制转2进制和16进制的相关文章

Java 10进制转2、8、16进制转换 / 2、8、16进制转10进制转换

public static void main(String[] args) { int i = 10; System.out.println("***********10进制转换2进制.8进制.16进制************"); System.out.println(Integer.toBinaryString(i)); // 10转换2进制 System.out.println(Integer.toOctalString(i)); // 10转换8进制 System.out.p

SQL SERVER 自定义函数 整数转成指定长度的16进制 转换成指定长度的16进制 不足补0

最近做项目扩展的时候,遇到问题就是将整型转换成指定长度的16进制 刚开始就是直接使用 cast(12 as varbinary(4))但是发现这个不能解决我的问题 所以就上网搜了一下,然后改了改,下面就是函数: 1 Create Function IntToHexLength(@Num int,@HxLength int) 2 returns varchar(16) 3 as 4 begin 5 declare @Mods int,@res varchar(16),@Length int 6 s

详解2进制,10进制,16进制,8进制,36进制

本篇介绍C/C++语言中的进制的概念,主要介绍2进制.10进制.16进制,这三种是编程时必须掌握的也是最经常使用的.另外,介绍8进制和36进制,当中 36进制在实际project项目中会遇到. (本文选自<C/C++学习指南>.邵发.附录"2进制,10进制,16进制") 讲2进制.10进制.16进制的视频教程,点击观看 权利声明:作者拥有本书的所有权利. 作者授权不论什么人都能够自由转载本站点公布的内容,但转载时必须遵守下面限制: ①转载时必须全文转载.不得有不论什么改动,

详细解释2进制,10进制,16进制,8进制,36进制

本篇介绍C/C++语言中的进制的概念,主要介绍2进制.10进制.16进制,这三种是编程时必须掌握的也是最常用的.另外,介绍8进制和36进制,其中 36进制在实际工程项目中会遇到. (本文选自<C/C++学习指南>,邵发,附录"2进制,10进制,16进制") 权利声明:作者拥有本书的全部权利.作者授权任何人都可以自由转载本网站发布的内容,但转载时必须遵守以下限制: ①转载时必须全文转载,不得有任何修改,必须包含"权利声明"和"官网地址"

关于 NSData 的数据类型(2进制,16进制之间)及深入剖析

1. NSData 与 NSString NSData-> NSString NSString *aString = [[NSString alloc initWithData:adataencoding:NSUTF8StringEncoding]; NSString->NSData NSString *aString = @"1234abcd"; NSData *aData = [aString dataUsingEncoding: NSUTF8StringEncodin

蓝桥杯 16进制转换8进制

蓝桥杯 16进制转换8进制 我表示我自己太渣渣了,总是超时,通不过测试. 题目 问题描述 给定n个十六进制正整数,输出它们对应的八进制数.输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行,每行一个由0~9.大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000.输出格式 输出n行,每行为输入对应的八进制正整数.注意 输入的十六进制数不会有前导0,比如012A. 输出的八进制数也不能有前导0.样例输入239123ABC样例输出7144

RGB颜色与16进制色以及透明色

RGB颜色与16进制色以及透明色是我们在开发经常要用到的,不太明白可以花几分钟看看: RGB色彩模式是工业界的一种颜色标准,是通过对红(R).绿(G).蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红.绿.蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一. 透明色:是指这种颜色的透明情况. 1.RGB的三种颜色值的范围都是0~255,0表示这种颜色无,255表示纯色,从0到255,数值越大,颜色越深. 2.透明色

字节流、字符串、16进制字符串转换__Java(转)

Java代码   /** * @Package: * @ClassName:TypeConversion * @Description:字节流.字符串.16进制字符串转换 * @author:xk * @date:Jan 8, 2013 5:00:08 PM */ public class TypeConversion { /** * @Title:bytes2HexString * @Description:字节数组转16进制字符串 * @param b *            字节数组 *

AndroidTCP通信,16进制数据传输实例

主要功能为手机与远程服务器进行16进制的数据收发,TCPControl类实现了16进制的数据收发功能,其中发送函数设置为每次发送4字节数据,服务器发来的数据在手机上会以Toast的形式显示出来. 代码:http://download.csdn.net/detail/miaoyunzexiaobao/8151831 PS:附件中包含TCP调试助手,使用时将调试助手设置为TCP服务器,并勾选发送与接收栏中的16进制收发的选择项 应用: 1.用户在IP和PORT编辑框中对应值,点击Set按钮,完成服务

WPF 16进制byte输入框

在WPF中,针对byte类型的输入控件可以选用 XCEED 的免费库中的 Xceed.Wpf.Toolkit.ByteUpDown(可从nuget获取). 若要使该控件在界面上以16进制显示byte,则将其 FormatString="X" 即可. 然而此时,在其中键入数字时,仍然是按照 10 进制输入(例如,键入‘A’,会失败,键入‘16’,会显示‘10’),那如何令其接受 16 进制的输入呢? 可新建用户控件,使其直接继承自 Xceed.Wpf.Toolkit.ByteUpDown