Gần đây tôi đã bắt đầu chơi xung quanh với C#, và tôi đang cố gắng hiểu tại sao mã sau đây không biên dịch. Trên dòng có nhận xét lỗi, tôi nhận được:XOR-ing chuỗi trong C#
Không thể chuyển đổi rõ ràng loại 'int' sang 'char'. Một lần thoát chuyển đổi rõ ràng (bạn có bỏ lỡ một dàn diễn viên không?)
Tôi đang cố gắng thực hiện thao tác XOR đơn giản với hai chuỗi.
public string calcXor (string a, string b)
{
char[] charAArray = a.ToCharArray();
char[] charBArray = b.ToCharArray();
char[] result = new char[6];
int len = 0;
// Set length to be the length of the shorter string
if (a.Length > b.Length)
len = b.Length - 1;
else
len = a.Length - 1;
for (int i = 0; i < len; i++) {
result[i] = charAArray[i]^charBArray[i]; // Error here
}
return new string (result);
}
Nếu chuỗi của bạn là ASCII, hãy thử 'kết quả [i] = (char) (ngắn) charAArray [i]^(ngắn) charBArray [i]); ' – ebattulga
Các toán tử bitwise chỉ lấy số làm toán hạng. Chuỗi của bạn có phải là một chuỗi các chữ số không? Hay bạn đang cố thực hiện thao tác này dựa trên Giá trị ASCII? – JohnFx
Cảm ơn, tôi quên rằng xor là toán tử bitwise vì vậy phải mất 1 và 0 đó là lý do tại sao nó phàn nàn về chuyển đổi int. –