文档章节

java基本数据类型

涛洛洛
 涛洛洛
发布于 2016/09/07 16:11
字数 295
阅读 25
收藏 0

 

基础

整型主要包括:byte(8bit)、short(16bit)、int(32bit)、long(64bit)

浮点型:float(32bit)、double(64bit)

字符型:char(16bit)

布尔型:boolean(1bit)

类型转换

从小转换到大,可以自动完成,而从大到小,必须强制转换

常见案例

MD5 加密

输入输出都是byte数组,为了方便阅读及使用,一般都会转换成16进制。

byte 由于是8bit,所以一个byte可以转换为两个16进制数表示,如 byte a = 125 ,可表示为 7D。

利用 移位,将高4位先转换为16进制,再讲低4位转换为16进制

char hexDigits[]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
byte byte0 = 125;
StringBuffer sb = new StringBuffer();
sb.append(hexDigits[byte0 >>> 4 & 0xf]);
sb.append(hexDigits[byte0 & 0xf]);

或者,通过转换为int,前24位全部补0,然后调用Integer的方法转为16进制(toHexString方法的原理,如上) 

byte byte0 = 125;
StringBuffer sb = new StringBuffer();
int val = ((int) byte0) & 0xff;
if (val < 16)
 sb.append("0");
sb.append(Integer.toHexString(val));

 

有待补充。。。

© 著作权归作者所有

共有 人打赏支持
涛洛洛
粉丝 4
博文 13
码字总数 6019
作品 1
上海
后端工程师
私信 提问

暂无文章

腾讯面试:一条SQL语句执行得很慢的原因有哪些?

说实话,这个问题可以涉及到 MySQL 的很多核心知识,可以扯出一大堆,就像要考你计算机网络的知识时,问你“输入URL回车之后,究竟发生了什么”一样,看看你能说出多少了。 之前腾讯面试的实...

java菜分享
36分钟前
9
0
Java 基本功 之 CAS

本文首发于个人公众号《andyqian》, 期待你的关注! 前言 在Java并发编程中,我们经常使用锁对竞争资源予以并发控制,以解决资源竞争的问题。但无论是使用 Lock 还是 Synchronized,随着锁机...

andyqian
40分钟前
4
0
信号量与条件变量的区别

注意信号量与条件变量的区别 信号量内容可见:http://www.cnblogs.com/charlesblc/p/6142868.html 信号量、共享内存,以及消息队列等System V IPC三剑客主要关注进程间通信; 而条件变量、互...

shzwork
51分钟前
1
0
在VirtualBox 6.0中安装fedora 30

操作系统安装完毕后首先进行更新。 sudo dnf update 重启虚拟机后,安装VirtualBox依赖的软件包。 sudo dnf install kernel-headers kernel-devel dkms gcc 最后,安装“增强功能”。...

gugudu
59分钟前
1
0
861. Score After Flipping Matrix

为了获得最大值,我们必须保证每一行列下标小的1尽可能的多(最高位的1尽可能多)。 首先,考虑我们可以进行的操作有 翻转列,进行列操作 翻转行,进行行操作 通过行操作 我们总是可以使得第...

reter
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部