前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >密码学之Byte和bit(04)

密码学之Byte和bit(04)

作者头像
海拥
发布2021-08-23 16:32:12
2570
发布2021-08-23 16:32:12
举报
文章被收录于专栏:全栈技术全栈技术

密码学之Byte和bit


文章目录


前言

Byte : 字节. 数据存储的基本单位,比如移动硬盘1T , 单位是byte

bit : 比特, 又叫位. 一个位要么是0要么是1. 数据传输的单位 , 比如家里的宽带100MB,下载速度并没有达到100MB,一般都是12-13MB,那么是因为需要使用 100 / 8

关系: 1Byte = 8bit


一、获取字符串byte

代码语言:javascript
复制
package com.atguigu.bytebit;

/**
 * @author JsonHao😋
 * @date 2020年9月10日 下午10:58:59
 */
public class ByteBit {
	public static void main(String[] args) {
        String a = "a";
        byte[] bytes = a.getBytes();
        for (byte b : bytes) {
            int c=b;
            // 打印发现byte实际上就是ascii码
            System.out.println(c);
        }
    }
}

结果:

在这里插入图片描述
在这里插入图片描述

二、 byte对应bit

代码语言:javascript
复制
package com.atguigu.bytebit;

/**
 * @author JsonHao😋
 * @date 2020年9月10日 下午10:58:59
 */
public class ByteBit {
    public static void main(String[] args) {
        String a = "a";
        byte[] bytes = a.getBytes();
        for (byte b : bytes) {
            int c=b;
            // 打印发现byte实际上就是ascii码
            System.out.println(c);
            // 我们在来看看每个byte对应的bit,byte获取对应的bit
            String s = Integer.toBinaryString(c);
            System.out.println(s);
        }
    }
}

结果:

在这里插入图片描述
在这里插入图片描述

三、 中文对应的字节

代码语言:javascript
复制
// 中文在GBK编码下, 占据2个字节
// 中文在UTF-8编码下, 占据3个字节
package com.atguigu;

/**
 * @author JsonHao😋
 * @date 2020年9月10日 下午11:09:16
 */
public class ByteBitDemo {
    public static void main(String[] args) throws Exception{

        String a = "尚";
        byte[] bytes = a.getBytes();
        for (byte b : bytes) {
            System.out.print(b + "   ");
            String s = Integer.toBinaryString(b);
            System.out.println(s);
        }
    }    
}

运行程序:我们发现一个中文是有 3 个字节组成

在这里插入图片描述
在这里插入图片描述

我们修改 编码格式 , 编码格式改成 GBK ,我们在运行发现变成了 2 个字节

代码语言:javascript
复制
public static void main(String[] args) throws Exception {
		String a = "尚";
		// 在中文情况下,不同的编码格式,对应不同的字节
		// GBK :编码格式占2个字节
		// UTF-8:编码格式占3个字节
		byte[] bytes = a.getBytes("GBK");
		// byte[] bytes = a.getBytes("UTF-8");
		for (byte b : bytes) {
			System.out.print(b + "   ");
			String s = Integer.toBinaryString(b);
			System.out.println(s);
		}
	}

运行程序

变成两个字节
变成两个字节

四、 英文对应的字节

我们在看看英文,在不同的编码格式占用多少字节

代码语言:javascript
复制
package com.atguigu.bytebit;

/**
 * @author JsonHao😋
 * @date 2020年9月10日 下午10:58:59
 */
public class ByteBit {
	public static void main(String[] args) throws Exception {
		String a = "A";
		byte[] bytes = a.getBytes();
		//在中文情况下,不同的编码格式,对应不同的字节
		//byte[] bytes = a.getBytes("GBK");
		for (byte b : bytes) {
			System.out.print(b + "   ");
			String s = Integer.toBinaryString(b);
			System.out.println(s);
		}
	}
}

运行程序

在这里插入图片描述
在这里插入图片描述

未完待续。。。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-09-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 密码学之Byte和bit
    • 文章目录
    • 前言
    • 一、获取字符串byte
    • 二、 byte对应bit
    • 三、 中文对应的字节
    • 四、 英文对应的字节
    相关产品与服务
    数据保险箱
    数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档