Code - 符号与单位
Summary
- 基础知识
bit
- 二进制数系统中,每个 0 或 1 就是一个位(bit),位是数据存储的最小单位。其中
8bit
就称为一个字节(Byte)。 - 计算机中的CPU位数指的是CPU一次能处理的最大位数。例如32位计算机的CPU一次最多能处理32位数据。
Byte
- 在Java中是整数类型,占用 1byte 空间。
- 取值范围是 到 ,-128~127,这里显示的是十进制数。
byte b1=-128 // result = {Byte@18654}
前面是类型,后面是内存地址?
char
- Java 也以 UTF-16 作为内存的字符存储格式。
- 一个 Java 的 char 类型表示一个
UTF-16
编码的代码单元,占用 2byte 空间。 - 取值范围是 到 ,0~65535,所以不能代表全部的中日韩(CJK)字符。
char c1 = 'A' result = {Character@18722}
int(Integer)
- 在Java中是整数类型,占用 4byte 空间。
- 取值范围是 到 ,这里显示的是十进制数。
Integer.toHexString(int) // 10进制数转换成16进制字符 Integer.toBinaryString((int) 'b') // 10进制数转换成2进制字符 Integer.toBinaryString(Integer.parseInt("fa", 16)) // 16进制转换成2进制 // 一个 char 可以对应一个 Integer,可以相互转换 int b = (int)'我' char a = (char)25105
Integer:
String
String str = new String(c1) // 将byte[*] 转换为字符串 char[] chars = str1.toCharArray() // 将 String 转换成 charArray
疑问
字符转换成byte数组,由于使用不同的编码方式,数组的大小不一样? 按照Java 的内存编码机制,这里不应该都是 2byte吗?
'A'.getBytes() // result = {byte[1]@18123} '我'.getBytes() // result = {byte[3]@18123}
Reference
https://baike.baidu.com/item/%E6%AF%94%E7%89%B9/3431582?fr=aladdin
比特(BIT,binary system),计算机专业术语,是信息量单位,是由英文BIT音译而来,同时也是二进制数字中的位,信息量的度量单位,为信息量的最小单位。哈特莱(R.V.L Hartley, 1890-1970) 1928年认为对信息量选用对数单位进行度量最合适。
Bit,是Binary digit(二进制数)位的缩写,是数学家John Wilder Tukey提议的术语(可能是1946年提出,但有资料称1943年就提出了)。这个术语第一次被正式使用,是在香农著名的《信息论》,即《通信的数学理论》(A Mathematical Theory of Communication)论文之第1页中。
本文来自博客园,作者:duchaoqun,转载请注明原文链接:https://www.cnblogs.com/duchaoqun/p/13093905.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?