c#字符串异或的问题

string s="abcd";for(int i=0;i<s.length;i++){ s[i]=s[i]^'k';} 请帮忙把我这段代码调试通过,谢谢

using System.Text;
using System;
namespace ConsoleTest{
public class Test{
static public void Main(String []args){
string s = "abcd";
StringBuilder b = new StringBuilder();
for (int i = 0; i < s.Length; i++)
{
b.Append(s[i] ^ 'k');
}
Console.WriteLine(b);
}
}
}


虽然能语法通过可运行,

但用C#的字符做异或操作,没有多少实际意义,

如果是涉及异或加密,必须在字节而不是字符上操作

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-13
string s="abcd";你这样声明是个字符串,不是数组,所以不能像后面s[0]这样同过索引去获取。这样改一下string []s={a,b,c,d}
第2个回答  2013-04-13
using System;

class test {

static string xor(string s) {
char[] a = s.ToCharArray();
for(int i = 0; i < a.Length; i++)
a[i] = (char)(a[i] ^ 'k');
return new string(a);
}

static void Main()
{
string s = "abcd";
s = xor(s);
Console.WriteLine(s);
s = xor(s);
Console.WriteLine(s);
}
}
第3个回答  2013-04-13
学会调试吧.....这种东西....

c#字符串异或的问题
using System.Text;using System;namespace ConsoleTest{ public class Test{ static public void Main(String []args){ string s = "abcd"; StringBuilder b = new StringBuilder(); for (int i = 0; i < s.Length; i++) { b.Append(s[i] ^ 'k'); } C...

c#用异或加密算法的一点问题
如果用Encoding.TF8.GetBytes(string)要比使用Default好的多,这样同时也可以加密汉字了!一般考虑密文的长度要比key长,如果是相反的情况下,可以只加密部分的。也就是说,如果密文长度是1,其实只使用了一位密码。(如果不采取被0的情况),显然会引发弱密码的情况。而且,按你的这种加密方式,如果密文...

c# VS求异或校验和的问题
回答:1)Encoding.ASCII.GetBytes(……)得到字节数组,数组中的每个元素在计算机内部都是以二进制格式存储的(其实计算机内存中所有类型的数据都是以二进制格式存储的!) 2)可以用10进制、16进制来表达或输出这些二进制数据 3)C#的异或操作是基于二进制按位操作 ----- 不知道你XOR校验和的具体算法...

c#中逻辑异或问题
ch1中的值的二进制码与key的二进制码按位取异或,然后得出的二进制码在转换成字符型输出

C#字符相加问题
1、在C#中 “^”符号的意思是“按位异或”的意思,就是在相同的位置上,如果是相同的则置0,不同的则置1 2、ch +=s_key的意思是:ch = ch + s_key,同理 ch ^= s_key的意思是 ch = ch ^ s_key 举个例子:假设ch=00001001,而s_key=01001010,则ch ^ s_key=01000011。“^”起...

C#字符串转换二进制问题
byte key = 126;\/\/异或密钥 string str = "888758442068198507120339";byte[] buffer = Encoding.Unicode.GetBytes(str);for(int i=0;i<buffer.Length;i++){ buffer[i] = (byte)(buffer[i] ^ key);} FileStream fs = new FileStream("C:\/\/XX.txt",FileMode.Create);fs.Write(buffer,0,...

c#如何将一个整数转换二进制,并进行位运算
位运算只能在 byte, char, short, ushort, int, uint, long, ulong 等类型上进行运算。当然 Enum 类型,也是基于这些类型的,也可以用位运算。一些例子:int a = 123;int b = a << 2; \/\/a 左移2位 int c = b >> 1; \/\/b 右移1位 int d = a ^ b; \/\/a 和 b 按位异或 in...

C#中的??是什么意思
可空类型修饰符(?):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空。例如string str=null; 是正确的,int i=null; 编译器就会报错。为了使值类型也可为空,就可以使用可空类型,即用可空类型修饰符"?"来表示,表现形式为"T?"例如:int? 表示可空的整形,DateTime?

c# 如何在大图里面找小图(bmp)
请各位高人指点,c#能调用的任何语言都行。2。 如何快速的吧bmp位图转成2值数据3。 两个字符串string a="00111000110" string b="00010000100" 如何快读判断 b里面1的位置 在a里面都存在以上尽量不要循环,要是效率高的也行。有成功代码的答案 分加倍异或 不行吧 0=0 成立 1=1 成立 我知道知道1=1 多少...

c#串口通信中,拔掉串口然后在插入串口,软件会卡顿,怎么解
在C#串口通信过程中遇到拔掉串口然后插入后软件卡顿的问题,通常是由未进行合理异常捕获导致的。解决此问题,推荐直接访问git仓库获取我开发的串口助手SComTool1.0,该工具能有效帮助调试和管理串口通信。访问地址:[SComTool1.0下载](github.com\/FenDouBi\/ser...)使用串口助手时,请参考其界面设计,...

相似回答