
计算机原理
文章平均质量分 82
Mint6
这个作者很懒,什么都没留下…
展开
-
深入解析Java和Go语言中String与byte数组的转换原理
java中通过 byte[]转换为 String时,可能因为一些编码规则,比如UTF-8,造成部分被替换,反向转换为 byte[]后和之前不同;在转换时,可以通过指定 StandardCharsets.ISO_8859_1等单字节编码来解决问题;这里引入另一个思考的问题,一个 String转换为 byte[]后,再转换为 String会有问题么?答案是不会,因为转换为byte[]的字节编码是符合UTF-8的;原创 2024-06-27 17:16:01 · 1596 阅读 · 0 评论 -
为什么Java默认使用UTF-16,Golang默认使用UTF-8呢?
为什么Java默认使用UTF-16,Golang默认使用UTF-8呢?Java 和 Go 在处理字符编码方面的选择,反映了它们各自的历史背景和设计哲学。Java 的 UTF-16 选择了稳定和兼容,而 Go 的 UTF-8 则倾向于现代互联网应用的灵活性和效率。原创 2024-06-21 20:06:37 · 922 阅读 · 0 评论 -
编码规则UTF-8 和 UTF-16的区别
UTF-8: 以可变长度编码字符,具有较好的 ASCII 兼容性和网络传输效率,非常适合以英语为主的文本处理和互联网应用。UTF-16: 适合需要处理大量非 ASCII 字符的场景,虽然占用存储空间较大,但在处理字符时较为高效,适合在内存中存储文本和内部字符处理。原创 2024-06-21 19:59:42 · 1355 阅读 · 0 评论 -
Java 和 Go 中的 byte 和 String 转换
Java: 强调对字符集和编码的处理,String是用来表示文本的类,在转换时需要处理不合法的字节。Go string是不可变的字节序列视图,直接允许[]byte转换为string,无论字节是否构成有效的 UTF-8 字符。如果在 Java 中不希望进行替换错误编码的处理,而希望直接存储字节数据,应当选择直接使用byte[]而不是String。这样可以避免编码和解码过程中的问题。原创 2024-06-21 18:58:59 · 1149 阅读 · 0 评论 -
计算机里的unicode编码和UTF-8的关系
计算机里的unicode编码和UTF-8的关系目前的统一码字符分为17组编排,每组称为平面(Plane),每平面有65536(216)点代码,但目前只用了少数平面。Unicode采用16位编码,也就是每个代码点由16位二进制数表示,65536这个数值在计算机科学中具有特殊的含义。它是2的16次方,也就是说,用16个二进制位可以表示的不同取值的数量。原创 2024-06-20 15:43:05 · 602 阅读 · 0 评论 -
字符编码和字符集到底有什么区别?Unicode和UTF-8是什么关系?
想必大家编写代码时肯定和我一样,也遇到过汉字乱码的问题。特别是,有时候和上下游对接接口,不能统一编码格式的话,一堆乱码问题,让人头皮发麻。那么为什么会有这么多的乱码问题?什么是字符编码?什么是字符集?他们之间有什么区别和联系?什么是 Unicode?Unicode 和我们常说的 UTF-8 又有什么关系?最后,来解答下文章开头的问题。乱码的问题,究其根本原因,其实是编码和解码时的规则不一样导致的。字符编码和字符集是两个不同的概念。转载 2024-06-20 15:01:38 · 700 阅读 · 0 评论 -
编程中遇到的计算机大小端概念
由于不同的处理器架构采用不同的字节存储顺序,因此在进行跨平台的数据传输和解析时,需要考虑字节序的问题。这个问题在早期计算机硬件设计中就已经存在,因为不同的处理器架构采用不同的字节存储顺序,这就导致了同一份数据在不同的处理器上可能被存储成不同的形式,而这对于数据的传输和解析都会带来问题。在网络通信中,大多数协议采用的是大端序,而在x86系列CPU中,则采用小端序。大小端(Endian)是指在一个多字节的数据中,字节的存储顺序的规定。将低位字节存储在内存的低地址处,而将高位字节存储在内存的高地址处。原创 2023-03-12 19:19:29 · 536 阅读 · 0 评论 -
编程中运算符号整除/和取模%的理解(java版)
整除运算符(/):整除运算符表示整数除法,即将被除数除以除数,得到的商向下取整。例如,10/3的结果是3,因为10除以3的商为3余1,整除运算符将其向下取整为3。需要注意的是,整除运算符仅适用于整数类型,如果其中一个操作数为浮点数,则会进行浮点数除法运算,结果为浮点数类型。取模运算符(%):取模运算符表示取余运算,即将被除数除以除数,得到的余数。例如,10%3的结果是1,因为10除以3的商为3余1,取模运算符返回余数1。整除运算符(/)和取模运算符(%)在编程中经常使用,它们都是用于数学运算的运算符。原创 2023-03-12 19:04:26 · 6862 阅读 · 0 评论