java和C#里byte的取值范围

本文探讨了Java与C#中Byte类型的取值范围差异及其底层存储方式。指出Java中Byte为-128~127,而C#中Byte为0~255,并解释了在socket传输时需要注意的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java里一个byte取值范围是-128~127, 而C#里一个byte是0~255.

首位不同. 但是底层I/O存储的数据是一样的,

比如, 十进制的100, 转换成java或者c#的byte, 都是1100110.

但是, 使用java的getBytes()方法, 得到的是负数,即: -100110

使用C#的getBytes(),得到的是正数.1100110.

 

这在底层socket传输应该注意.

 

另外, java底层socket传输应注意, 不要使用Reader/Writer而是使用Stream.

因为Reader/Writer是基于字符流的,会在发送数据之前将数据按照字符的格式(比如UTF8编码)预处理,导致乱码问题.而Stream是基于字节流的,不会影响数据.

转载于:https://my.oschina.net/wower/blog/14884

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值