请问大于127的ascii怎么转成byte或者char

xiaokaiye 2005-01-20 11:59:55
请问大于127的ascii怎么转成byte或者char

比如0x8E转成byte,怎么转,才能保证正确
...全文
728 16 打赏 收藏 转发到动态 举报
写回复
用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测试一下,告诉大家结果。

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧