Java学习笔记(17)——二进制

这里将自己学习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());
	} 
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值