- 浏览: 55616 次
- 性别:
- 来自: 杭州
最新评论
final static char[] digits = { '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , 'a' , 'b' , 'c' , 'd' , 'e' , 'f' , 'g' , 'h' , 'i' , 'j' , 'k' , 'l' , 'm' , 'n' , 'o' , 'p' , 'q' , 'r' , 's' , 't' , 'u' , 'v' , 'w' , 'x' , 'y' , 'z' }; /** * 进制转换(查表法) * @param 待转换的10进制数 * @param shift 每次移位数 * @return 转换为对应进制的字符串 */ static String trans(long i, int shift) { char[] chs = new char[64]; //long类型数据占64个字节,定义一个一样大小的字符数组 int pos = 64; //因为每次都是移掉最后的shift位, //所以查到的字符也是从字符数组最后一个位置开始存储 int radix = 1 << shift; //基数 比如十进制转二进制shift为1 得到的基数是2 其他进制类推 int mask = radix - 1; //掩码 为基数-1 //比如十进制(15)转八进制 每次将待转的十进制数(15)向右移掉3位 //八进制对应的基数是8 掩码是7 //第一次(二进制表示15) //15: 1111 // 7: 111 掩码 // 111 查表得 '7' //向右移掉3位,得到1 //第二次: //1: 001 //7: 111 // 1 查表得 '1' //此时结束循环 得到最终的结果"17" do { chs[--pos] = digits[(int)(i & mask)]; i >>>= shift; } while(i != 0); //当前结果不为0 循环继续 return new String(chs, pos, 64-pos); } //这也是将十进制转为2进制的一种方法 public static void toBinary(long val) { long x = val / 2; long y = val % 2; if(x != 0) toBinary(x); System.out.print(y); } //十进制转2进制 每次移动1位 public static String toBinaryString(long l) { return trans(l, 1); } //十进制转8进制 每次移动3位 public static String toOctalString(long l) { return trans(l, 3); } //十进制转16进制 每次移动4位 public static String toHexString(long l) { return trans(l, 4); } /** * -1 >>> -1 * -1向右移位(无符号)-1结果? * * -1 >>> 31 * -1向右移位(无符号)31 结果是1 * * -1 >>> 32 * 计算过程 * 32 & 31 = 0 向右移动0位 结果仍为-1 * * -1 >>> -1 * -1 & 31 = 31 向右移动31位 结果为1 */
发表评论
-
redis安装(windows.exe)
2014-05-21 22:54 740https://github.com/rgl/redis ... -
rabbitMQ安装(windows下)
2014-05-21 22:41 655进入项目下载主页面http://www.rabbitmq.co ... -
实现单线程的断点下载
2014-04-16 09:43 843/** * 实现单线程的断点下载 */ publ ... -
实现一个简易的http模拟器
2014-04-15 15:20 1799/** * http模拟器 * 模拟发送http请求和 ... -
xml学习鉴定
2014-04-09 23:33 842实现招生录取系统中的 ... -
xml学习
2014-04-08 22:47 1474XML:Extensible Markup Langu ... -
HTTP断点续传
2014-03-31 22:13 793http://fenglingcorp.iteye.com/b ... -
java多线程-线程状态转换
2014-03-01 09:20 7971. 新建(new):新创建了一个线程对象。 2. 可 ... -
apt处理自定义annotation
2014-02-19 23:20 1024package annotations; import ... -
跳过UTF-8的BOM
2014-02-14 12:19 1503/** version: 1.1 / 2007-01-25 ... -
java reference
2014-02-09 00:36 678import java.lang.ref.PhantomR ... -
不带头结点的单链表面试汇总
2014-01-24 13:47 1497import java.io.ByteArrayInputSt ... -
带头节点的单链表面试题汇总
2014-01-23 15:12 1031import java.io.ByteArrayInput ... -
单链表面试题之-链表反转
2014-01-15 22:43 1102单链表反转 -------------------- ... -
java单链表-带头结点和不带头结点单链表的简单实现
2014-01-14 23:41 4931带头结点的单链表实现 public class LinkedL ... -
ClassLoader
2013-11-08 15:57 908public class ClassLoaderTest { ... -
URL和URI
2013-11-08 13:48 513private static void getData ... -
i++和++i
2013-11-06 15:26 524// i = i++ 计算过程 // temp = i; ... -
java 继承 多态
2013-11-06 15:19 802/** 运行结果: A's constructor co ... -
sealing violation
2013-11-03 16:10 3140一般以下两种情况会触发sealing安全异常 1)当被密封(s ...
相关推荐
总的来说,C++中的进制转换涉及到数学、位运算、字符串操作和标准库的使用。熟练掌握这些方法,能够帮助开发者在处理各种进制转换问题时游刃有余。在实际编写代码时,可以根据具体需求选择合适的方法,同时注意数据...
总结来说,C语言的移位操作在进行二进制和十六进制转换时起着关键作用,它可以提高算法的效率,使得程序执行更快。通过熟练掌握位移操作,程序员可以更好地理解和处理二进制数据,这对于理解底层计算机原理以及编写...
RGB值是颜色的一种表示方式,由红色、绿色和蓝色三个分量组成,每个分量取值范围为0到255,对应十进制的0到2^8-1。十六进制颜色值则是RGB值的另一种表达形式,每个分量用两位十六进制数表示,范围从00到FF。软件的...
通过移位的方法把16进制的字符串转换为10进制的字符串
1. 数据存储:单片机内存中的数据都是二进制表示,读取和写入时需要进行进制转换。 2. 编程逻辑:在编写条件判断、循环等逻辑时,常需将进制数转换为十进制进行比较。 3. 通信协议:在串口通信、网络协议中,数据...
本软件“二进制、十进制、十六进制转换工具 V1.5【终极版】”是一个基于MFC(Microsoft Foundation Classes)界面库开发的实用程序,它提供了便捷的转换功能,能够帮助用户轻松地在这些数制之间进行转换,同时包含了...
加密公式为:C = (a * P + b) mod m,解密公式为:P = (a^(-1) * (C - b)) mod m,其中P是明文,C是密文,m是字符集的大小。这种密码比移位密码更难破译,但依然存在线性结构,可能被频率分析等攻击手段破解。 接...
- 开始时,将十进制数转换为科学记数法,即一个介于1和2之间的数字乘以10的幂。 - 分别将基数和指数转换为二进制:基数可以通过乘2取余的方式,指数可以通过位移操作。 - 如果指数是负数,需要将尾数的二进制表示...
1. **初始化**:首先,程序将需要转换的16进制数加载到寄存器R0和R1中。 2. **调用子程序**:接下来,通过`CALL HEX2BCD`指令调用一个名为`HEX2BCD`的子程序来进行转换工作。 3. **BCD转换**:子程序`HEX2BCD`的...
进行进制转换时,我们通常会用到算术运算和移位操作。 十六进制转十进制的过程一般涉及乘法和加法。例如,将十六进制数ABCD转换为十进制,可以逐位乘以16的相应幂次并累加。而在汇编中,这可能涉及到多次乘法和加法...
反之,将十进制转换为二进制则常用的方法有短除法或扩展的二进制除法。 在汇编语言中实现这种转换需要编写一系列指令来执行这些计算。"convert.asm"文件很可能是这个转换程序的源代码。汇编语言程序由指令组成,每...
在实际应用中,还可以自定义函数实现这些转换,例如,使用位操作或移位运算来处理二进制数据。这有助于理解底层原理,但通常情况下,`BitConverter`已经提供了足够的功能。 在处理16进制字符串时,确保字符串符合...
1. **数据编码与解码**:通过位移,可以实现二进制数据的编码和解码,比如ASCII码的转换。 2. **位逻辑操作**:配合AND、OR、NOT、XOR等位逻辑指令,可以进行复杂的位运算,例如设置或清除特定位,检查某个位的状态...
3. **16进制到10进制的转换**:相反的过程,16进制的浮点数转换为10进制,需要对整数和小数部分进行逆向操作。整数部分直接转换,小数部分通过除以16的幂次并累加结果。指数部分需要根据其符号和值进行相应的乘法或...
原创软件,MFC界面,可以任意转换64bit数据到2进制、10进制、16进制,2进制可以直接查看任意bit,取0~63之间的任意区间值,并且支持取位、移位大小端转换等等,尤其适合做嵌入式开发的相关人员使用。真正做到了简单...
在实际的开发过程中,为了提高效率和正确性,进制转换器组件可能会使用位运算、移位操作和除法来实现。同时,考虑到错误处理和边界条件,例如输入超出范围或格式不正确,组件应该提供适当的异常处理机制。 总的来说...
原创软件,二进制、十进制、十六进制转换工具 V1.1 上一个版本的升级版,功能更强,实用性更强
《51单片机数码管计算器与进制转换详解》 在电子工程和嵌入式系统设计中,...通过研究这个项目,不仅可以掌握单片机控制数码管和LED的方法,还能理解如何实现进制转换和基本运算,对提升电子设计和编程技能大有裨益。
- 对每一组进行十进制转换,得到一个十进制数字。 - 将这个十进制数字编码为四位的BCD码。 - 重复以上步骤,直到所有二进制位都被处理完毕。 ### 四、移位法的优势 相比于传统的数学运算方法,移位法在数制转换中...