Network:java中文转byte出现负数问题
2024-09-02 15:17:41
字节的释义
字节(Byte) 是计算机信息技术用于计量存储容量的一种计量单位,通常情况下 1字节 = 8位(bit),也表示一些计算机编程语言中的数据类型和语言字符。
字符与字节
ASCII码:1个英文字母(不分大小写)占1个字节的空间,1个中文汉字占2个字节的空间。一个二进制数字序列,在计算机中作为一个数据单元,一般为8位二进制数,换算为十进制。最小值是0,最大值是255。如一个ASCII码就是1个字节。
UTF-8编码:1个英文字符等于1个字节,1个中文(含繁体)等于3个字节。
Unicode编码:1个英文字符等于2个字节,1个中文(含繁体)等于2个字节。
符号:英文标点占1个字节,中文标点占2个字节。
GBK编码:采用双字节bai8位表示,总体编码范围为duzhi 8140 -- FEFE,首字节在 81 -- FE 之间,尾dao字节在 40 -- FE 之间。
java中文转byte出现负数的情况
ASCII是7位编码,只使用bai前7位,du第8位补0,所以转换成整数始终为正数,而GBK是8位编码,也就是说一个字节中的第8位可以为1,如1010 1101,而将其转换成byte类型时,byte值为10101101,以补码存储,第8位被当成符号位,当然是负数了,值为:-83。
“何”字的GBK编码是:BA CE(1011 1010 1100 1110),两个字节第8位都为1,对byte类型来说,都被理解为最高位符号位。这样值就变成-70和-50了。
最新文章
- 用PHP调用Oracle存储过程方法
- leetcode 141. Linked List Cycle
- prototype与原型链
- count distinct 多个字段 或者 count(*) 统计group by 结果
- 在eclipse中安装插件
- juggle
- UVA 140 (13.07.29)
- javascript 10进制和64进制的转换
- merge 语句的语法
- sping 对 hibernate进行事务管理--Annotation, xml, 大多数使用XML
- JavaScript-变量的作用域面试题
- 并归排序 (Java版本,时间复杂度为O(n))
- .NET、C#和ASP.NET、ASP.NET MVC四者之间的区别
- E:dpkg was interrupted, you must manually run'dpkg配置'to correct the problem.
- vue脚手架构
- 如何在Ubuntu18.04(Bionic Beaver)系统安装Teamviewer远程控制软件
- 网络协议TCP/IP、IPX/SPX、NETBEUI简介
- c++ 常用的数据结构
- HTML5中Access-Control-Allow-Origin解决跨域问题
- 天梯赛 L1-006 连续因子 (模拟)