首页 > 编程知识 正文

java中char是什么数据类型,java的char类型

时间:2023-05-03 09:58:03 阅读:47881 作者:2069

作者: xfdxy秀

麻烦了,因为java的数据类型没有uchar。 今天用c编写的程序更改为java,但由于java的数据类型没有uchar,所以有些内容没有转换。

我想

将图像src的像素值保存为uchar格式的数据。 这是因为uchar的值范围为0.255

在OpenCV上

Mat_对应于CV_8U,Mat_对应于CV_8U,Mat_对应于CV_8S,Mat_对应于CV_32S,Mat_对应于CV_32F,Mat_对应于CV_64F

cv _ 8u-8-bitunsignedintegers (0. 255 ) )

cv _ 8s-8-bitsignedintegers (-128 . 127 )。

cv _ 16u-16-bitunsignedintegers (0. 65535 ) )。

在c语言中

char、类型标识符、字符类型。

[signed]char有符号字符类型长度(字节)为1-128~127

无符号字符类型长度(字节)为10到255

在Java中

char16比特范围是从2负2的15次方到2的15次方的整数

字节是8比特,但取值范围是从负2的7次方到2的7次方的整数

在网上找到了解决方法:

在Java中,不存在无符号数据类型,但可以轻松进行无符号转换。

在方案Java中处理流数据时,可以使用DataInputStream类以Unsigned形式读取流数据。

此领域支持Java,并且可以使用java.io.DataInputStream

类对象完成流中数据的未指定读取。 该类提供了以下方法:

(1) intreadUnsignedByte

从(//流读取0~255 ) xff )的1字节数据,作为int数据类型的数据返回。 返回的数据相当于C/C语言中的“BYTE”。

)2)读取intreadunsignedshort(/从流中读取0到0~65535 )0xffff )的2字节数据,并作为int数据类型的数据返回。 返回的数据相当于C/C语言中的“WORD”,

另外,因为它以“低地址低字节”返回,所以程序员不需要额外的转换。

使用方案Java位运算符完成无符号转换。

通常,Java提供的数据类型是有符号的signed类型,可以通过位运算获得相应的无符号值。 请参阅一些方法的代码。

publicintgetunsignedbyte (字节

将DATA(//data字节型数据转换为0~255 )0xff即字节。

返回数据0x 0f f;

}

publicintgetunsignedbyte (短

将data )//data字节型数据转换为0到0~65535(0xffff,即WORD )。

返回数据0x 0f fff;

}publiclonggetunsignedintt(int

将data )//int数据转换为0到0~4294967295(0xffffff,即DWORD )。

返回数据0x0ffffffff;

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。