JAVA 二进制基础
主要内容
1.十进制二进制互转
2.二进制的位运算
3.JDK内置的进制转换
4.JAVA中的进制
十进制二进制互转
57 111001
二进制的位运算:优点:特定情况下,计算方便,被支持面广泛。
JDK内置的进制转换:
JAVA中的进制:
public class Convert { /**
* <<左移运算<<右移运算<<<无符号右移
*/ // int转Byte[]
public static byte[] int2Bytes(int id) {
byte[] arr = new byte[4];
arr[0] = (byte) ((int) (id >> 0 * 8) & 0xff);
arr[1] = (byte) ((int) (id >> 1 * 8) & 0xff);
arr[2] = (byte) ((int) (id >> 2 * 8) & 0xff);
arr[3] = (byte) ((int) (id >> 3 * 8) & 0xff);
return arr;
} // Byte[]转int
public static int Bytes2int(byte[] arr) {
int rs0 = (int) ((arr[0] & 0xff) << 0 * 8);
int rs1 = (int) ((arr[1] & 0xff) << 1 * 8);
int rs2 = (int) ((arr[2] & 0xff) << 2 * 8);
int rs3 = (int) ((arr[3] & 0xff) << 3 * 8);
return rs0 + rs1 + rs2 + rs3;
} // long转化为byte[]
public static byte[] long4Bytes(long id) {
byte[] arr = new byte[8];
for (int i = 0; i < arr.length; i++) {
arr[i] = (byte) ((int) (id >> i * 8) & 0xff);
}
return arr;
} /**
* byte[]转化为long型和转化int型一样,只是long是64bit,而int是32bit
*/
public static void main(String[] args) {
byte[] arr = Convert.int2Bytes(8143);
System.out.println(arr[0] + "\n" + arr[1] + "\n" + arr[2] + "\n" + arr[3]);
int rs = Convert.Bytes2int(arr);
System.out.println(rs); byte[] arr2 = Convert.long4Bytes(20);
for (byte b : arr2) {
System.out.println(b);
} // 字符串与字节数组:
String describle = "我是字符串";
byte[] barr = describle.getBytes();
String des = new String(barr);
System.out.println(des);
} }
JAVA 二进制基础的更多相关文章
- java编程基础二进制
0.java编程基础 01.二进制(原码,反码,补码) 02.位运算 03.移位运算符 二进制 原码,反码,补码 1.基本概念 二进制是逢2进位的进位制,0,1是基本算符. 现在的电子计算机技术全部使 ...
- Java学习总结(二)----Java语言基础
1. Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,i ...
- Android开发之Java必备基础
Android开发之Java必备基础 Java类型系统 Java语言基础数据类型有两种:对象和基本类型(Primitives).Java通过强制使用静态类型来确保类型安全,要求每个变量在使用之前必须先 ...
- java语言基础02
一.Java语言基础(常量的概述和使用)(掌握) 1:什么是常量 就是在程序的执行过程中其值不发生改变的量. 2:Java中常量的分类 (1):字面值常量 (2):自定义常量(面向对象部分讲解) 3: ...
- 【重走Android之路】【Java面向对象基础(一)】数据类型与运算符
[重走Android之路][基础篇(一)][Java面向对象基础]数据类型与运算符 1.数据类型介绍 在Java中,数据类型分为两种:基本数据类型和引用类型. 基本数据类型共8种,见下表: 基本数 ...
- Java之--Java语言基础组成(关键字、标识符、注释、常量和变量、运算符)
Java语言基础组成-关键字.标识符.注释.常量和变量.运算符 Java语言由8个模块构成,分别为:1.关键字:2.标识符(包名.类名.接口名.常量名.变量名等):3.注释:4.常量和变量:5.运算符 ...
- Java语言基础(七)
Java语言基础(七) 今天在公司多呆了会,回来晚了 一.自动类型转换 在Java中,数据是可以转换的 例如可以将byte类型的赋给int类型的 这里希望你了解内存的变化,例如 在这里,我想你应该知 ...
- Java语言基础(三)
Java语言基础(三) 一. 补码 (1).之所以有补码是因为要考虑成本 就是造计算机的成本 (2).下面让我们分析一下补码 以四位补码为例 <1> 高位是符号位,它决定其是正数还是 ...
- Java语言基础(二)
Java语言基础(二) 一.变量续 (1).变量有明确的类型 (2).变量必须有声明,初始化以后才能使用 (3).变量有作用域,离开作用域后自动回收 变量作用域在块内有效 (4).在同一定义域中变量不 ...
随机推荐
- c++(数据选择)
在数学中,有一些数据选择的内容.举个例子来说,有这样一组数据:1.2.3.4.现在我们打算从中挑选出1个数据,那么有几种选择呢?结果应该是1.2.3.4:那么如果挑选2个数据呢,怎么选呢?那么结果应该 ...
- Qt 共享库(动态链接库)和静态链接库的创建及调用
前言: 编译器 Qt Creator, 系统环境 win7 64 位 1.创建共享库: 新建文件或项目->选择 Library 和 c++ 库->选择共享库->下一步(工程名为 sh ...
- bean的作用域 :singleton和prototype
- Vuex初识
vuex是vue中单向数据流的一个状态管理模式,它可以集中存储管理应用中所有组件的状态,并且有一套相应的规则可以去预测数据的变化.类似与此的还有react中的redux,dva等状态管理模式. 一般我 ...
- ZOJ 1203 Swordfish
题目: There exists a world within our world A world beneath what we call cyberspace. A world protected ...
- vim&vi在编辑的时候突然卡死,不接收输入问题的解决
多方查找无果,看了官方解释如下: "CTRL-S and CTRL-Q are called flow-control characters. They represent an antiq ...
- vue中使用Ueditor编辑器
一. 下载包: 从Ueditor的官网下载1.4.3.3jsp版本的Ueditor编辑器,官网地址为: http://ueditor.baidu.com/website/ 下载解压后会得到如果下文 ...
- phpmyadmin设置密码,不用登录直接进入
版权声明:本文为博主原创文章,未经博主允许不得转载. 1.config.sample.inc.PHP改为config.inc.php 2.加入或更改代码: [php] view plain copy ...
- 关于MacOS升级10.13系统eclipse菜单灰色无法使用解决方案
最近,苹果发布了macOS High Sierra,版本为10.13,专门针对mac pro的用户来着,至于好处大家到苹果官网看便是,我就是一个升级新版本系统的受益者,同时也变成了一个受害者:打开ec ...
- spring问题:java.lang.NoClassDefFoundError: org/aspectj/weaver/tools/PointcutPrimitive
问题描述: spring的:java.lang.NoClassDefFoundError: org/aspectj/weaver/tools/PointcutPrimitive 解决方案: 缺少jar ...