- 二进制:只有0,1 八进制:0-7(注意:开头用0表示这是个8进制的数字) 十进制:0-9 十六进制:0-9,A,B,C,D,E,F(注意:用0X开头表示这是个16进制的数) 引入8、16进制是为了更短的表示一个数,数字的长度会变短好多; 比如:2进制:1101 ,8进制:15,10进制:13,16进制:D 这样子就更加简便表示1个数字了,对于计算机而言。 二进制转化成10进制: 比如:1101 = 1*2^3+1*2^2+0*2^1+1*2^0 = 13(10进制) 10进制转化成2进制: 采用除2取余,然后倒序输出余数的方法。 同理,8进制,16进制转化成10进制,就按照上面二进制转化成10进制的做法来做: 比如:(8进制)15 = 1 * 8^1+5*8^0 = 13(10进制) (16进制)D = 1*D^0 = 13(10进制) 那么,如果10进制转化成8,16进制呢? 同样模仿转2进制的思路:除相应的数,取余数倒序输出就可以; 额外的插曲: 2进制要是转8,16进制呢?很容易做到: 8:(3位一组) 16:(4位为一组) 比如:1101100,3位为一组:154(8进制) 4位为一组:5C(16进制) 所以就出现了16、8进制。 通过JDK内置方法帮助我们完成进制转化 /** * Author:林万新 lwx * Date: 2017/11/15 * Time: 16:55 *进制转化:利用JDK内置的进制转化 */ public class RadixMain { public static void main(String[] args) { //十进制转化成其他进制 System.out.println(Integer.toBinaryString(112));//2进制 System.out.println(Integer.toOctalString(112));//8进制 System.out.println(Integer.toHexString(112));//16进制 //其他进制转化成十进制 System.out.println(Integer.parseInt(1110000,2));//2 System.out.println(Integer.parseInt(160,8));//8 System.out.println(Integer.parseInt(70,16));//16 } } 运行结果: 1110000 160 70 112 112 112 java数据传输用的是字节码; 数据类型转化成字节 转化后关于怎么存放: 大小端: 数据类型与字符串之间的转化 /** * Author:林万新 lwx * Date: 2017/11/15 * Time: 22:13 */ public class Convert { /** * int 转化字节数组byte[] * long同理 */ public static byte[] int2Bytes(int id){ byte[] arr = new byte[4]; for(int i=0;iarr.length;i++){ arr[i] = (byte)((int)(idi*8)0xff); } return arr; } /** * byte到int * @param arr * @return */ public static int bytes2Int(byte[] arr){ int result = 0; for (int i =0;iarr.length;++i){ result += (int)((arr[i] 0xff)i*8); } return result; } public static void main(String[] args) { byte[] arr = Convert.int2Bytes(8143); System.out.println(arr[0] +,+arr[1]+,+arr[2]+,+arr[3]); System.out.println(bytes2Int(arr)); //字符串与字节数组转化 String s = 我爱java; byte[] sarr = s.getBytes(); String ss = new String(sarr); System.out.println(ss); } } 运行结果: -49,31,0,0 8143 我爱java 大小端介绍 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 /*方法思想:把n的2二进制表示法依次判断最右边是不是1; 与n和1进行按位的操作,如果结果不等于0,则count++; 但是问题是这是正整数的前提,如果是负数,需要让1左移1位,而不是 让n左移,因为负数是以补吗的形式在计算机存储的。 */ public int NumberOf1(int n) { int count=0; int flag=1; //为什么条件是flaf!=0,是因为32整数,需要左移32次,直到0.(负数和正数的原因),如果是正数白白多循环好多次, while(flag!= 0){ if((n flag) !=0){ count++; } flag = flag 1; } return count; } 小米面试题目 世界上有10种人,一种懂二进制,一种不懂。那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么? /* //先进行异或运算,再用上面的方法统计多少个!!! */ public int countBitDiff(intm, int n) { intdif=m^n;//先将二者做异或运算,得到结果; intcnt=0; while(dif!=0){ dif=dif(dif-1); cnt++; } //统计一个整数dif含有多少个1; returncnt; } 程序 =算法 +数据结构对应到计算机的组成原理(硬件层面)算法 —各种计算机指令数据结构 — 二进制数据计算机用0/1组成的二进制,来表示所有信息程序指令用到的机器码,是使用二进制表示的存储在内存里面的字符串、整数、浮点数也都是用二进制表示的万物在计算机里都是0和1,搞清楚各种数据在二进制层面是怎么表示的,是我们的必修课。在实际应用中最常遇到的问题,也就是文本字... 文档介绍:《计算机的二进制》教案一、教学对象:预初年级学生二、教学目标1.知识与技能:学生知道计算机内信息的编码采用二进制的方式,2.过程与方法:(1)学生掌握二进制的书写表达方法,能够通过...三、教学重点与难点1、重点:知道计算机中只能识别0和1组成的二进制数2、难点:二进...查看更多精选
-
想总结答案?来试试AI搜索
二进制如何转十进制,十进制如何转二进制_360新知
-
进制转换- 在线工具
进位制其实是一种记数的方式,所以也称为进位记数法/位值计数法,可以用有限的数字符号代表所有的数值。可使用数字符号的数目称为基数(英文:radix)或底数,基数为n,即可称n...
tool.lu/hexconvert/
如何看懂二进制-百度经验
二进制是什么意思_360问答
1个回答 - 提问时间:2016年09月24日
最佳答案: 二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码版来表示的数。它的基数为2,进权位规则是“逢二进一”,借位规...... 详情>>wenda.so.com/q/1608115888214541?src...
二进制是什么_360问答
8个回答 - 回答时间:2013年9月13日 - 58
最佳答案:所谓二进制,也就是计算机运算时用的一种算法。二进制只有一和零组成。 比方说吧,你上一年级时一定听说过“进位筒”&“数位筒”吧!十进制是个位上满...
wenda.so.com/q/1379059097125135
二进制、八进制、十进制、十六进制之间的转换_360新知
xinzhi.wenda.so.com/a/1537180...
二进制
相关搜索