C代码转java

wudeaaa 2010-08-09 06:27:27
伪代码如下:

char *p="磲钺珏驙";
unsigned char *x;
int i=0;

while(p+i != '\0')
{
i++;
x = (unsigned char*)p;
(*x) &= 0x3F;
}

用意是把加密的字符串解密,如何转成java代码。其实不解的就是Java中如何获得字符串的地址。
...全文
97 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wudeaaa 2010-08-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 yktd26 的回复:]
实验得知你之前的编码为GBK
下面的代码能得到manager

Java code
public static void main(String[] args){
String s = "磲钺珏驙";
byte[] b;
try {
b = s.getBytes("GBK");
cha……
[/Quote]搞定,十分感谢,这么晚还在奋斗啊?
yktd26 2010-08-09
  • 打赏
  • 举报
回复
实验得知你之前的编码为GBK
下面的代码能得到manager
public static void main(String[] args){
String s = "磲钺珏驙";
byte[] b;
try {
b = s.getBytes("GBK");
char[] ca = new char[b.length];
for (int i = 0; i < b.length; ca[i] = (char)(b[i] & 0x7f),i++);
for (char c:ca)
System.out.print(c);
}
catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}

System.out.print时不要直接填数组名,那样他不会自动打印成员
wudeaaa 2010-08-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yktd26 的回复:]
Java code
String s = "磲钺珏驙";
char[] b = new char[s.length()];
for (int i = 0; i < b.length; i++){
char c = s.charAt(i);
c &= 0x3f;
……
[/Quote]恩,笔误,应该是&上0x7f,正确结果为manager,但是执行该段代码后,结果为:[C@de6ced
qinghu52baby 2010-08-09
  • 打赏
  • 举报
回复
java中没有指针,实际,处处是指针,如String s="......",s就是一个指针,它指向了这个字符的引用地址。
yktd26 2010-08-09
  • 打赏
  • 举报
回复
    	String s = "磲钺珏驙";
char[] b = new char[s.length()];
for (int i = 0; i < b.length; i++){
char c = s.charAt(i);
c &= 0x3f;
b[i] = c;
}

但是Java字符编码默认unicode,这样单纯的转恐怕得不到你想要的结果,最好知道之前编码形式是什么
luckli 2010-08-09
  • 打赏
  • 举报
回复
	String p="磲钺珏驙";
String x="";
int i=0;
for(i = 0;i < p.length(); ++i){
x = x + (char)( p.charAt(i) & 0x3F);
}
luckli 2010-08-09
  • 打赏
  • 举报
回复
不需要地址,用String操作吧,而且java里面没有unsigned char类型吧
  • 打赏
  • 举报
回复
对C不是很明白。
qingralf 2010-08-09
  • 打赏
  • 举报
回复
可以把结果发上来么?就是解密后的串

62,615

社区成员

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

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