这里将自己学习java及其应用的一些笔记、积累分享一下,如果涉及到了文章、文字侵权,请联系我删除或调整。
一、二进制
2.1 概述
- 计算机表示任何数据,都是二进制数字
- 电容高电位,1
- 电容低电位,0
- 一个电位,称为 bit(比特)
- 一个字节,8个电位
2.2 Java的byte类型
在前面我们说过,byte是1个字节,即8位,其取值范围是-128-127(第一位是符号位)。那么这个取值范围是怎么来的呢,现在看一下下面的内容:
二进制 十进制
10000000 -128
...…
11111011 -5
11111100 -4
11111101 -3
11111110 -2
11111111 -1
00000000 0
00000001 1
00000010 2
00000011 3
00000100 4
00000101 5
00000110 6
00000111 7
00001000 8
...…
01111111 127
2.3 二进制前缀
- 计算机和人交互,是按人习惯的进制 10 进制进行交互,但对计算机来说任何数据都是二进制。
-
0b 前缀,例如0b1010110
2.4 二进制和十进制转换方法
- 二进制转十进制
Integer.parseInt("10111011", 2)
- 十进制转二进制
Integer.toBinaryString(255)
"11111111"
2.5 byte与int类型转换
byte a = 127;
int b = a;
01111111
00000000 00000000 00000000 01111111
byte a = -1;
int b = a;
11111111
11111111 11111111 11111111 11111111
int a = 356;
byte b = (byte) a;
00000000 00000000 00000001 01100100
01100100
2.6 boolean
真 true 00000001
假 false 00000000
2.7 练习:int类型十进制与二进制
Int32类,封装一个int整数,和它的32位二进制字符串。
package day0703;
/*
* 封装int整数,和它的32位二进制字符串
* 封装10进制和二进制的转换运算
*/
public class Int32 {
int i;
String binary;
public Int32(int i) {
this.i = i;
// int转成二进制字符串 "101001"
binary = Integer.toBinaryString(i);
fill32();//把二进制字符串补满32位
}
private void fill32() {
if(binary.length() != 32) {//长度不足32
//计算要补多少个0
int n = 32-binary.length();
for(int j=0;j<n;j++) {//循环补n个0
binary = "0"+binary;
}
}
}
public Int32(String binary) {
this.binary = binary;
//二进制字符串解析成int
this.i = Integer.parseInt(binary, 2);
fill32();//填满32位
}
public int getInt() {
return i;
}
public String getBinary() {
return binary;
}
}
package day0703;
public class Test3 {
public static void main(String[] args) {
Int32 a = new Int32(535);
Int32 b = new Int32("10101101");
System.out.println(a.getInt());
System.out.println(a.getBinary());
System.out.println("------------");
System.out.println(b.getInt());
System.out.println(b.getBinary());
}
}