# JNADemo **Repository Path**: itzong/JNADemo ## Basic Information - **Project Name**: JNADemo - **Description**: Java 运行dll 库,实现植物大战僵尸,修改阳光数 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-02-25 - **Last Updated**: 2022-08-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JNADemo #### 介绍 Java 运行dll 库 #### 软件架构 JNA #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 **一、Java内置的进制转换** 有关十进制转为二进制,和二进制转为十进制这种基本的运算方法这里就不展开讲了。 在Java中内置了几个方法来帮助我们进行各种进制的转换。如下图所示(以Integer整形为例,其他类型雷同): ``` 二进制:Integer.toBinaryString(int i); 八进制:Integer.toOctalString(int i); 十八进制:Integer.toHexString(int i); ``` **2,其他进制转化为十进制:** ``` 二进制:Integer.valueOf("0101",2).toString; 八进制:Integer.valueOf("376",8).toString; 十六进制:Integer.valueOf("FFFF",16).toString; ``` **3,使用Integer类中的parseInt()方法和valueOf()方法都可以将其他进制转化为10进制。** 不同的是parseInt()方法的返回值是int类型,而valueOf()返回值是Integer对象。 **4,实例** ```java public class BitCompute { public static void main(String[] argv) { testRadix(); testBitMove(); } /** * 测试各种进制之间的转换 */ public static void testRadix() { // 二进制没有特殊表达方法,可用字符串表示 String i2str = "1000"; // 八进制前面加0 int i8 = 010; // 十进制是自然的 int i10 = 8; // 十六进制前面加0x int i16 = 0x8; // 将二进制的字符串转换为int int i2 = Integer.parseInt(i2str, 2); // 测试证明i2、i8、i10和i16本质上是相等的,只是表达形式不同 if (i2 == i8) { System.out.println("i2==i8"); } if (i8 == i10) { System.out.println("i8==i10"); } if (i10 == i16) { System.out.println("i10==i16"); } int i = i2; // 转换为各种形式的字符串 System.out.println("radix=2,i=" + Integer.toBinaryString(i)); System.out.println("radix=8,i=" + Integer.toOctalString(i)); System.out.println("radix=10,i=" + Integer.toString(i)); System.out.println("radix=16,i=" + Integer.toHexString(i)); // 甚至可以有7进制、5进制 System.out.println("radix=7,i=" + Integer.toString(i, 7)); System.out.println("radix=5,i=" + Integer.toString(i, 5)); // 由此可知,在内存中i、i2、i8、i10、i16都是一样的,不同的只是表现形式;因此不同进制之间不需要转换,只是在需要时用不同的形式表达 int j8 = 010; int j10 = j8; System.out.println("j8=" + j8 + ",j10=" + j10); int j16 = 0x10; j10 = j16; System.out.println("j16=" + j16 + ",j10=" + j10); } /** * 测试位移运算,经常用于计算Color */ public static void testBitMove() { Random rand = new Random(); int red = rand.nextInt(255); int green = rand.nextInt(255); int blue = rand.nextInt(255); int color = 0xFF000000; color = color | red << 16 | green << 8 | blue; System.out.println("red = " + Integer.toHexString(red) + ", green = " + Integer.toHexString(green) + ", blue = " + Integer.toHexString(blue)); System.out.println("color in Hex = " + Integer.toHexString(color)); } } ``` #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)