java 和 c/c++ 中的char 类型长度学习笔记
这两天在帮同学改一个加密程序。以下是c++语言的核心代码:
char cpass[5]; for(int j=0;j
但是转成 java 写时会出现问题,乍一看,几乎可以原封不动的转换,可是结果却是有问题的。
经过网上资料的查找发现,是char类型的问题。实际上这就涉及到 c/c++ 中的数据类型和 java 的数据类型的比较。
先说 char 类型。
c/c++ 中的char类型是8位的
java 中的char类型是16位的
所以用java处理这种转换时要注意将char类型的高8位清零,很简单和 0x00ff 位与就可以了。完成后的java程序如下
char cpass[5]; for(int j=0;j