`
qq272936993
  • 浏览: 3212 次
社区版块
存档分类
最新评论

黑马程序员_进制转换

阅读更多

------- android培训java培训、期待与您交流! ---------- 

学到十进制与二进制、八进制、十六进制之间的转换.

       我们日常生活中常用的数据是以十进制形式表示,可是计算机中的只能用0和1直接表示数据,也就是只识别二进制,因此,为了让计算机处理我们日常生活中的数据,就要把日常生活中的数据转换成计算机能识别的数据。

 

首先,我们可以知道越是少的进制数,则越长

比如:

十进制(由0 到 9组成 ,逢十进一): 128

二进制为(有0和1组成,逢二进一): 10000000

八进制为(由 0 到7组成,逢8进一): 200

十六进制为(有0到9和A-F组成,逢十六进一):80

 

转换规则:

 进制转换 - javaheima - 黑马的博客

如何分析?

十六进制 80  则可以理解为 8* 16^1+ 0*16^0 = 128

八进制   200 则可以理解为 2 * 8^2 + 0* 8^1 + 0*8^0 = 128

二进制 10000000 则可以理解为 2* 2^7 +0*2^6+0*2^5+0*2^4+0*2^3+0*2^2+0*2^1+0*2^0 = 128

 

同时,将老师写的工具类整理了下,可以作为以后的工具类使用.

public class HexConversion {

        /**
         * 十进制 ---> 二进制
         * @return 
         * */
        public static List<Character> toBin(int num){
                return trans(num, 1, 1);
        }
        
        /**
         * 十进制 ---> 八进制
         * */
        public static List<Character> toBa(int num){
                return trans(num, 7, 3);
        }
        
        /**
         * 十进制--->十六进制
         * */
        public static List<Character> toHex(int num){
                return trans(num , 15 , 4);
        }
        
        
        public static List<Character> trans(int num , int base , int offset){
                if(num == 0){
                        System.out.println(num);
                        return null;
                }
                char[] chs = {'0' , '1' , '2' ,'3', '4', '5', '6','7',
                                '8','9','A','B','C','D','E','F'};
                
                char[] arr = new char[32];
                int pos = arr.length;
                while(num != 0){
                        int temp = num & base;
                        arr[--pos] = chs[temp];
                        num = num >>> offset;
                }
                
                List<Character> list = new ArrayList<Character>();
                for(int x=pos; x < arr.length; x++){
                        //System.out.print(arr[x]);
                        list.add(arr[x]);
                }
                return list;
        }
        
        public static void main(String[] args) {
                List<Character> list = toBin(22);
                
                for(Character chr : list){
                        System.out.print(chr);
                }
        }
        
}

 ------------- android培训java培训、java博客、java学习型技术博客、期待与您交流! -------------

详情请查看:http://edu.csdn.net/heima/

分享到:
评论

相关推荐

    黑马程序员 - Java基础教学 - 04 - 数组、进制转换、二维数组

    Java基础教学 - 数组、进制转换、二维数组 在Java基础教学中,数组是一个非常重要的概念。数组是多个相同类型的变量组成的集合,每个变量被称为一个元素,数组中的每个元素都有自己的下标或索引。下面将详细讲解...

    黑马程序员Java基础视频辅导班Day01

    ### 黑马程序员Java基础视频辅导班Day01知识点总结 #### Java的跨平台特性与JVM 1. **Java的跨平台性**:Java语言能够实现跨平台运行的关键在于Java虚拟机(JVM),即Java代码可以在任何安装了对应JVM的操作系统上...

    黑马程序员Java基础视频辅导班Day02

    此外,还涉及了不同进制之间的转换方法,例如将其他进制转换为十进制,以及将十进制转换为其他进制的算法。 接着,我们转向变量。变量是存储数据的容器,它的值可以在程序运行过程中改变。声明变量时,需要指定数据...

    黑马程序员基础班精华笔记总汇

    ### 黑马程序员基础班精华笔记总汇 #### 计算机基础知识 - **计算机定义**:计算机是一种能够根据程序指令处理数据的电子设备。它由硬件和软件两大部分构成。 - **硬件**:包括中央处理器(CPU)、内存、硬盘、...

    Python课后题答案.docx

    - **八进制表示**:Python 3中八进制数的前缀变为`0o`。 - **不等号操作符**:Python 2支持`!=`和`&lt;&gt;`表示不等,Python 3仅支持`!=`。 - **整数类型**:Python 3中整数类型统一为`int`,不再区分`int`和`long`。 ...

    【黑马程序员就业班】02.C高级编程

    在“【黑马程序员就业班】02.C高级编程”这个课程中,我们将深入探讨C语言的高级特性,这些知识对于成为一名熟练的IT专业人员至关重要。C语言作为基础性且广泛应用的编程语言,其高级编程技巧是提升编程能力的关键。...

    Hadoop 讲义 基础篇

    - Base64是一种常用的编码方法,用于将二进制数据转换为ASCII字符串形式。通常用于电子邮件和Web页面中传输二进制数据。 5. **Avro**: - Avro是一个数据序列化系统,它不仅提供了紧凑、快速的数据序列化方式,还...

    传智播客毕向东JAVA基础班教学大纲

    综上所述,毕向东的JAVA基础班教学大纲覆盖了Java编程的基础知识,从计算机语言的原理到实际开发环境的配置,再到编写和运行第一个Java程序,以及进制转换的概念。这些知识是初学者掌握Java编程所必须掌握的核心内容...

    黑马程序员 C#运算符

    理解并熟练运用这些运算符是成为优秀C#程序员的基础,它们在编写算法、控制程序流程和处理数据时起着至关重要的作用。在编写代码时,合理选择和组合运算符能提高代码的效率和可读性,同时避免可能的错误和异常。

    黑马入学考试试题

    黑马程序员训练营入学考试题 1、方法中的内部类能不能访问方法中的局部变量,为什么? 2、编写一个类,在main方法中定义一个Map对象(采用泛型),加入若干个对象,然后遍历并打印出各元素的key和value。 ...

    黑马入学测试题和答案

    "黑马"通常指的是黑马程序员,这是一个知名的在线教育平台,专注于IT技术培训,包括但不限于编程语言、数据结构、算法、前端开发、后端开发等。 测试题的内容可能涵盖以下几个方面: 1. **基础编程语言**:如Java...

    机房管理系统(黑马c++项目),借用来熟悉git和github管理项目的流程.zip

    同时,“黑马c++项目”可能指的是该项目是黑马程序员培训机构的一个学习实践项目,旨在通过实际操作来提升学员的C++编程技能。 【描述】提到的“借用来熟悉git和github管理项目的流程”意味着这个项目不仅关注代码...

    color.exe取色器

    【color.exe取色器】是一款简单实用的颜色选取工具,它主要被黑马程序员(可能是某编程教育机构或个人)推荐使用。这款工具的核心功能是帮助用户从屏幕上任意位置获取颜色值,便于在设计、编程或者日常工作中精准...

    01计算机基础.pdf

    例如,Windows用户群体广泛,macOS适合程序员使用,而Linux则多用于服务器和嵌入式系统。服务器操作系统如Linux,以其安全稳定和免费特性深受IT专业人员青睐;而Windows Server则是付费产品,市场占有率相对较低。...

Global site tag (gtag.js) - Google Analytics