代码模拟实现十六进制转二进制

public class TowAdecimal{
    private int sum;//用于转换值
    private static String s = "11";//十六进制的值
    public static void main(String[] args){
        TowAdecimal a = new TowAdecimal();
        a.char_value(s);

}

//------------------------------------------------------------
    public  void char_value(String s){
        if (s == null) {//判断.传进来的是不是null 如果是null 就没必要往下运算,就直接终止函数运行
            System.out.println( "请输入一个十六进制的字符串,null不是字符串" );
            return;
        }
        for(int i=0; i < s.length(); ++i){
            char c = s.charAt(s.length()-1-i);//从右往左获得字符串
            if (int_value(c,i)) {//这个是根据输入的字符,如果有一位不正确,就终止此函数运行,就不输出错误的结果了
                return;
            }
        }
        if (sum == 0) {
            System.out.println( 0 );
        }else{
            sum_2(sum);
        }
    }
    //------------------------------------用于把字符串解析成整型值----------------
    public boolean int_value(char c,int N_Ci_Fang ){//这个方法是把字符转为整形值
        int i = 0;
        if (c == ‘a‘) {
            i = 10;
        }else if (c == ‘b‘) {
            i = 11;
        }else if (c == ‘c‘) {
            i = 12;
        }else if (c == ‘d‘) {
            i = 13;
        }else if (c == ‘e‘) {
            i = 14;
        }else if (c == ‘f‘) {
            i = 15;
        }else if (c == ‘0‘) {
            i = 0;
        }else if (c == ‘1‘) {
            i = 1;
        }else if (c == ‘2‘) {
            i = 2;
        }else if (c == ‘3‘) {
            i = 3;
        }else if (c == ‘4‘) {
            i = 4;
        }else if (c == ‘5‘) {
            i = 5;
        }else if (c == ‘6‘) {
            i = 6;
        }else if (c == ‘7‘) {
            i = 7;
        }else if (c == ‘8‘) {
            i = 8;
        }else if (c == ‘9‘) {
            i = 9;
        }else{
            System.out.println( "十六进制每位上的值最大为 f , 请输入 0~f 之间的值" );
            return true;
        }

sum_value(i,N_Ci_Fang);
        return false;
    }
    //-------;----------------------------用于把整型值计算,得出十进制----------------
    public  void sum_value( int value,int N_Ci_Fang){

//  System.out.println(   Math.pow(16,0)); //是16的0次方 里面的两个参数都是double类型
        this.sum += value*(int)Math.pow(16,N_Ci_Fang);
    }
    //----------------------------------计算二进制的值---------------------
    public void sum_2(int sum){
        int sum2= sum;//用于承载每次除2的那个值
        StringBuffer s = new StringBuffer();
        for(int i=1; i<999999999; ++i){
            if (sum2 == 1) {
                s.append(1);
                break;
            }
            s.append(sum2%2);
            sum2 = sum2/2;

}
        String_Buffer(s);
    }
    //----------------------StringBuffer--------------------------------------
    public void String_Buffer( StringBuffer s){
        StringBuffer value = new StringBuffer();
        for(int i=0; i < s.length(); ++i){
            value.append(s.charAt(s.length()-1-i));
        }
        System.out.println( value );
    }
    //------------------------------------------------------------
    //------------------------------------------------------------
}

时间: 2024-10-22 05:18:35

代码模拟实现十六进制转二进制的相关文章

java代码模拟DOS下的tree命令

DOS下的tree命令可以把当前路径当做根路径,然后把文件树以树的形式展示出来.这个命令的实现不难,深搜一下文件树就可以了. import java.io.File; import java.util.Scanner; public class Tree { public static int depth = 0; public static void main(String[] args) { Scanner cin = new Scanner(System.in); String path

十六进制字节 &amp; 十六进制转二进制

转自:http://www.cnblogs.com/Alight/p/4088715.html 十六进制字节 & 十六进制转二进制 做项目也将近一年的时间了.从一开始就经常提到“一个十六进制字节”,然而一开始就是迷惑的,直到现在.     一个十六进制字节,比如:FF.周围的人经常说这是一个十六进制字节.然后我就想,这不是两个字符吗,分别是F 和F,一个字符是一个字节,两个字符是两个字节,怎么就成一个十六进制字节,就成一个字节了.就是这种想法,整整困扰了我将近一年的时间.     这几天在写论文

递归代码将十进制转换成二进制输出

这段代码将十进制转换成二进制输出,代码很简洁干练 #include<stdio.h> #include<string.h> void DtoB(int n) {  if(n)  {   DtoB(n/2);   printf("%d",n%2);  } } int main() {  int n;  scanf("%d",&n);  DtoB(n);  return 0; }

走进http的世界------用C代码模拟浏览器IE(http client)访问web(http server)的行为

在本文中, 我们来玩一下http.   既然你看到了这篇文章, 那就说明你肯定直接或间接借助了http协议(浏览器的实现需要用到http协议). 很多书本把http介绍得玄乎其玄, 高深莫测, 其实,  http也没什么大不了的. 当我们用浏览器看登录www.baidu.com的时候, 浏览器相当于客户端, 而服务端是百度公司掌控着. 要想大致了解http,  网上资料可谓如山如海.作为一名程序员(注意, 我说的是程序猿), 我始终坚信, 没有代码, 没有实践, 只讲理论, 那就是扯淡, 尽管一

C# 使用代码模拟域登陆来操作文件

[DllImport("advapi32.DLL", SetLastError = true)] public static extern int LogonUser(string lpszUsername, string lpszDomain, string lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken); IntPtr admin_token = default(IntPtr); Win

Java的进制转换操作(十进制、十六进制、二进制)

2014-05-06 17:34 吴文付 最近由于工作上的需要,遇到进制转换的问题.涉及到的进制主要是 十进制,十六进制,二进制中间的转换. 这里整理一下.具体的计划为:封装一个转换类,一个测试类. 1.十进制 转 十六进制: 2.十进制 转 二进制 3.十六进制 转 十进制: 4.十六进制 转 二进制: 5.二进制转 十进制: 6.二进制转十六进制: Java的进制转换操作(十进制.十六进制.二进制),布布扣,bubuko.com

串口收发数据时字符、十六进制、二进制格式详细区分

在使用串口调试助手时发送和接收数据都是以字节 (Byte) 为单位,并且可以选择字符.十六进制.二进制三种收发格式 ,那么这三种格式究竟怎样区分呢? 首先我们来明确一个概念 :串口收发数据的单位 '' 字节 (Byte) '' ,   1Byte = 8 bits , 串口收发数据格式一般为  1bit起始位(一般为0) + 8bits 数据位(一字节) +1bit校验位(可有可无) +1bit结束位(一般为1) 下面逐一区分三种收发格式: (1) 十六进制:   由于1位十六进制数位宽为 4b

html加载swf,代码模拟点击事件

一.背景 1.最近在做一个android端播放flash的应用,android设备没有屏幕,显示需通过HDMI连接.需要用到javascript与java之间的交互,android端接收flash传过来的fscommand 2.希望通过WebView加载html实现 二.遇到问题 1.通过html加载之后的动画,无论按哪个按键,swf文件都接收不到按键消息,既不能实现它本身的一些操作性功能 2.传过来的命令接收不到(有时间再分析这个,已经解决) 三.尝试方法 1.发现如果直接通过电脑端使用浏览器

编写代码模拟手机与SIM卡的组合关系。.........

编写代码模拟手机与SIM卡的组合关系. 要求: SIM卡类负责创建SIM卡: Phone类负责创建手机: 手机可以组合一个SIM卡: 手机可以更换其中的SIM卡. package test; public class phone { SIM sim;//声明对象 void setSIM(SIM card) { sim = card; } long lookNumber() { return sim.getNumber(); } } package test; public class SIM {