Java 和 C/C 中的char 类型长度学习笔记
java 和 c/c 中的char 类型长度学习笔记
这两天在帮同学改一个加密程序。以下是c 语言的核心代码:
但是转成 java 写时会出现问题,乍一看,几乎可以原封不动的转换,可是结果却是有问题的。
经过网上资料的查找发现,是char类型的问题。实际上这就涉及到 c/c 中的数据类型和 java 的数据类型的比较。
先说 char 类型。
c/c 中的char类型是8位的
java 中的char类型是16位的
所以用java处理这种转换时要注意将char类型的高8位清零,很简单和 0x00ff 位与就可以了。完成后的java程序如下
<blockquote>
char cpass[5]; for(int j=0;j<instring.length();j ){ cpass[j] ^= npwd; cpass[j] &= 0x00ff; //将高8位清零}
</blockquote>您可能感兴趣的文章:
Java 和 C/C 中的char 类型长度学习笔记
c语言学习的简要笔记
java数据类型学习笔记
mysql字段类型char与varchar区别
C语言复习笔记之数据结构详解
java入门篇-数据类型
mysql中char、varchar、text和nchar、nvarchar、ntext的区别
C语言的基本数据类型入门教程
Golang中对interface{}做type assertion和type switch学习笔记
C语言学习笔记之成员数组和指针