异或运算返回的类型是bool型
且比较的两者应该为整型或者bool型
且比较的两者应该为整型或者bool型
解决方案 »
- 求几个连续的数字的正则表达式
- 如何将excel导入access
- 求一复杂xml 序列化类!
- 相同类名,不同namespace名的webservice调用的问题。(请教有分布式webservice经验的高手)
- private void AddFolders( string path , TreeNodeCollection nodes )
- 高手快来啦!!!!
- 如何在.net的编辑环境里面统一调整Label或者其它控件的字体??(vs2003)
- 如何使用conv3ds啊
- 如何用正则表达式把不完整的链接替换成完整
- 操纵Windows自带的屏幕键盘
- 我想用html的button控制一个服务器端的树控件,应该怎么弄呀,我动态的在网页里加了一个客户端的button,想
- Monitor类的Pulse和PulseAll方法有什么不同??
string str2 = "china";
char[] char1 = str1.ToCharArray();
char[] char2 = str2.ToCharArray();
int i = 0;
char[] arrResult = new char[char1.Length];
foreach(char c in char1)
{
arrResult[i] = Convert.ToChar((short)char1[i]^(short)char2[i]);
i ++;
}大概就这样吧,返回个char[],自己去试试
a=true
else
a=falseif "中国"
b=true
else
b=falseResult=a^b
char[] key2="china".ToCharArray();int MAX=key1.Length>key2.Length?key1.Length:key2.Length;int offset1=0,offset2=0;string ret;for(int i=0;i<MAX;i++)
{
char c;
c=(char)(key1[offset1]^key2[offset2]);
offset1++;
offset2++;
if(offset1>key1.Length-1) offset1=0;
if(offset2>key2.Length-1) offset2=0;
ret+=c;
}
你的不对,我试过了。。如果:
string a = "1";
string b = "TESOFTTE9000";那a和b异或的结果应该是:65
private void button6_Click(object sender, System.EventArgs e)
{
char[] t = "中国".ToCharArray();
char[] tt = "china".ToCharArray(); for (int i = 0; i<t.Length; i++)
{
t[i] = (char)(t[i] ^ tt[i]);
}
}
string str1= "china";
bool myBool = (str=="中国")^(str1=="china");
Response.Write(myBool.ToString());
如果:
string a = "1";
string b = "TESOFTTE9000";那a和b异或的结果应该是:65
char[] key2="china".ToCharArray();int MAX=key1.Length>key2.Length?key1.Length:key2.Length;int offset1=0,offset2=0;string ret;for(int i=0;i<MAX;i++)
{
char c;
c=(char)(key1[offset1]^key2[offset2]);
offset1++;
offset2++;
if(offset1>key1.Length-1) offset1=0;
if(offset2>key2.Length-1) offset2=0;
ret+=c;
}
我的正确,接分,我自己写过这个函数,绝对正确而且没有遗漏任何一个字符。
我也是误打误撞的,呵呵#include <string.h>
#include <stdio.h>
void main()
{
unsigned char key[12] = "TESOFTTE9000";
unsigned char text[64] = "我爱看雪";
int i,len; len = strlen((char *)text); for(i=0 ; i<len ; i++)
{
text[i] ^= key[i % 12];
printf("%02x",text[i]);
}
}
你的也不对,,看看我的C语言写的方法,,
#include <stdio.h>
void main()
{
unsigned char key[12] = "TESOFTTE9000";
unsigned char text[64] = "1";
int i,len; len = strlen((char *)text); for(i=0 ; i<len ; i++)
{
text[i] ^= key[i % 12];
printf("%02x",text[i]);
}
}
然后printf的输出是: 65现在我想把printf输出保存到一个字符串,,,用C#改写
string str2 = "1"; int len = str2.Length;
char[] key1=str1.ToCharArray();
char[] key2=str2.ToCharArray(); for(int i=0 ; i<len ; i++)
{
key2[i] ^= key1[i%12];
string myStr = key2[i].ToString();
Response.Write(myStr);
}
你的差不多了,我输出的结果也是e,但不对,应该是65才对,你不能直接输入,
如果原文是:1的话,
那在key2[0] 里面存的是十进制的101,把101转成十六进制就行了,
101 = 16进制的 65,然后我要的就是这个65,,可我不会转
如果用byte数组可能更好一点
byte[] byt=Encoding.Unicode.GetBytes(string);
string s=Encoding.Unicode.GetString(byt);
但是如果是汉字就不行了,为什么呀?
unicode的一个汉字怎么换成ascii的两个字符呀
没想到有这么大的用处,,
谢谢各位光临,,留贴几天,,,下周结贴。