社区
Java SE
帖子详情
请问大于127的ascii怎么转成byte或者char
xiaokaiye
2005-01-20 11:59:55
请问大于127的ascii怎么转成byte或者char
比如0x8E转成byte,怎么转,才能保证正确
...全文
728
16
打赏
收藏
请问大于127的ascii怎么转成byte或者char
请问大于127的ascii怎么转成byte或者char 比如0x8E转成byte,怎么转,才能保证正确
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cql0007
2005-01-24
打赏
举报
回复
接收完后判断一下,判断接收到的数是>0还是<0
if(value<0){
value += 256
}
小于0的数加上256就正确了
xiaokaiye
2005-01-24
打赏
举报
回复
可能大家的理解不同。但是有些知识是一样的吧,对不?
我想实现的其实是这样的,就是把0x8e这个字节从java程序传到c程序,使用socket
那么我就一定要把0x8e转成一个char或者一个byte
现在遇到的问题是java中0x8e的byte是-114,c程序接收到后,如果是142那么就正确了。因为在c里面,0x8e是142
xiaokaiye
2005-01-24
打赏
举报
回复
众所周知,IBM、Sun和Apple等各式计算机都需要用ASCII编码作储存、启用和传递数据。ASCII字符和数值有256个(2^8),每个ASCII字符编码用八个比特,是单字节。在ASCII里,数值0到127范围通用所有的计算机,而从128到255,各类计算机的安排有所不同。从0到127的ASCII范围是7-bit ASCII。
xiaokaiye
2005-01-24
打赏
举报
回复
呵呵!
楼上说的有道理,谢谢~
经过测试,结果是正确的。
谢谢大家
wjsfr
2005-01-24
打赏
举报
回复
0x8E表示十六进制数,是142,将其转换为byte时变为-114,因为byte的表示范围是-128---127之间,所以这里得到的是142对256的补码
c中byte的表示也是这样的
题目不像你说的那么复杂
jFresH_MaN
2005-01-20
打赏
举报
回复
汉字一个要占32位,所以应该是四个16进制数表示一个汉字啊
xiaokaiye
2005-01-20
打赏
举报
回复
谢谢大家!
可能问题表述的不是清楚。
直接地问 0x8E 怎么才能转成byte,要真确的值,即值应该为142,不应该为-114
如果没有办法,那么怎么实现0x8e转成一个char或者String??
谢谢!
vcvj
2005-01-20
打赏
举报
回复
大于127的是汉字编码,不能转为byte
drugon
2005-01-20
打赏
举报
回复
ascii是不能表示那么大的编码,所以就有UTF-8这种形式的编码,支持的语言格式要多一些。
cxz7531
2005-01-20
打赏
举报
回复
mark
jinjazz
2005-01-20
打赏
举报
回复
参考
http://dev.csdn.net/develop/article/13/13104.shtm
jinjazz
2005-01-20
打赏
举报
回复
大于127的是汉字编码,不能转为byte
songjinpin
2005-01-20
打赏
举报
回复
可以这样;
byte[] bt=new byte[2];
byte[0]=0x8E>>>4 & 0x000f;
byte[2]=(0x8E<<12 &0xf000)>>>12 & 0x000f
cxz7531
2005-01-20
打赏
举报
回复
char在java中表示一个字符,占两个字节,采用unicode编码。
楼主所谓的大于127的ascii指什么??ascii都是小于127的,应该是大于127的unicode吧。大于127的unicode本身就是char,根本不存在转化的问题。
至于转化为byte,应该这样理解:
byte就是字节的整数表示,一个byte表示一个字节,范围在127~-127。硬要把char表示成byte,那就是一个unicode对两个byte
xitianjile
2005-01-20
打赏
举报
回复
可以考虑用两位byte[]表示一个..
xiaokaiye
2005-01-20
打赏
举报
回复
再次谢谢大家!
可能问题表述不是太清晰吧。
0x8E 对应于142,142转成byte后,再转int就是-114.
但是这样的结果是正确的,因为这是在java这边表示的结果。byte 范围-128~127
这是我们技术牛人说的。等我在unix测试一下,告诉大家结果。
java
byte
与
char
互转原理_【转】java
byte
与
char
互转原理
一、字节和unicodeJava内核是unicode的,就连class文件也是,但是很多媒体,包括文件/流的保存方式是使用字节流的。因此Java要对这些字节流经行转化。
char
是unicode的,而
byte
是字节。Java中
byte
/
char
互转的函数在sun.io的包中间有。其中
Byte
To
Char
Converter类是中调度,可以用来告诉你,你用的convertor。其中两个很常用的静态函...
JAVA 中
byte
转换为
char
存储
//数据类型转换
java中的基本类型都为有符号类型。从文件读取流中获取的数据为
byte
数组,其中部分值为
大于
127
的
ascii
值,这样在向
char
数组中转换时符号位会出错,解决方法:如果该值
大于
127
(也就是小于0),那么为该值加256,从而校正符号位。示例代码如下:
//从String获取
byte
数组
int len = str.length();
byte
[] ab = new
byte
[len];
ab = str.getB
在java语言中在
byte
字节流读取
大于
127
的情况处理
在android中,经常通过串口或者USB收发数据,得到的字节流,经常有
大于
127
的情况。列举了下面几种处理方法: 1.如果只想读取一个字节最后一位是1还是0 ,可以简单的这样处理 r_seat= (
byte
) ((
char
) ((
char
)(readbuffer[1])&((
char
)0x80))>>7); 2. 如果想对字节判断是否
大于
127
java中的基本类型都为有符号
C#
char
和
byte
以及string之间的转换问题
char
是字符型
byte
是字节型(0 - 255) 在参与算术运算是
char
类型会自动转为整型;如字符A会转为对应
ASCII
码65.在
char
和
byte
之间转换 当
char
大于
256时就会转换有误(比如汉字的
char
超过了256)在string 和
byte
之间的转换 一般
java
byte
与
char
互转原理
一、字节和unicode Java内核是unicode的,就连class文件也是,但是很多媒体,包括文件/流的保存方式是使用字节流的。因此Java要对这些字节流经行转化。
char
是unicode的,而
byte
是字节。Java中
byte
/
char
互转的函数在sun.io的包中间有。其中
Byte
To
Char
Converter类是中调度,可以用来告诉你,你用的 convertor。其中两个很
Java SE
62,615
社区成员
307,318
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章