如何使用C#的内置方法对图像进行XOR?
如何使用C#内置方法或任何其他图像处理技术XOR图像? 我现在正在这样做,但是我想要更有效的方法. using System; using System.Drawing; using System.Drawing.Imaging; namespace IProcessing { /// /// Summary description for LogicalOperator. /// public class LogicalOperator { Bitmap bmpimg; public LogicalOperator() { // // TODO: Add constructor logic here // } public Bitmap XORing( Bitmap bmp ) { BitmapData bmpDat
8 2024-04-25
编程技术问答社区
C#中对象列表的XOR
嗨,我在C#中的对象之间进行X型时有问题. 假设我有一个属性以下的类 - public string UserName { get; set; } public bool IsUserEmployed { get; set; } public bool IsUserValid { get; set; }` 我有2个列表: List List1 = new List(); List List2 = new List(); 我尝试了基本的Xoring如下: FinalList.AddRange(List1.Except(List2)); FinalList.AddRange(List2.Except(List1));` ,但我没有在FinalList中获得结果. 我想在List1和List2上执行XOR,以比较列表中对象中的所有3个属性,并给我第三列表.
6 2024-04-25
编程技术问答社区
在枚举上使用XOR运算符重载GetHashCode和平等运算符
我有以下类是统计分析软件包的一部分. MetricKey对象用作字典键. Decision,MetricUnit&Portfolio都是枚举. 我必须覆盖平等运算符(==)才能获得字典键匹配.我在public class MetricKey { public MetricKey(Decision decision, MetricUnit metricUnit, Portfolio portfolio) { Decision = decision; Unit = metricUnit; Portfolio = portfolio; } public Decision Decision { get; private set; } public MetricUnit Unit { get; private set; } public Portfolio Portfolio { get; private set; } public static bool operator == (
10 2024-04-22
编程技术问答社区
两个Hex字节数组的XOR函数
我试图执行独家或两个字节阵列,并将结果作为十六进制字符串返回.我已经将两个字节数组转换为它们相应的二进制字符串.每个字节都有位,因为它具有8个字节. byte[] key = { 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18 }; byte[] PAN = { 0x12, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x23 }; 到目前为止,我已经使用了一种将字节数组转换为相应的二进制字符串值的方法,例如" 1010101011".但是,当我执行以下方法获取XOR时,我会带着一连串的笑脸返回,这可能是一些特殊的ASCII角色. 但是,我没有任何想法.我当时想将二进制字符串转换为整数,但这不是一个好的解决方案,因为它不适合整数. 你有什么想法吗?可能有一些示例代码? public static string exclusiveOR(string string_1, string s
12 2024-04-19
编程技术问答社区
在C#中XOR | ing 字符串
我最近开始使用C#玩耍,我试图了解为什么以下代码不编译.在带有错误评论的线上,我得到: 不能将类型的'int'转换为" char".明确的转换退出(您是否缺少演员?) 我正在尝试使用两个字符串进行简单的XOR操作. 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;
8 2024-04-18
编程技术问答社区
在C#中,^运算符真的是XOR运算符吗?
我读到^运算符是C#中的逻辑XOR运算符,但我也认为这是操作员的"功能".什么是解释? 解决方案 它不是C#运算符的功能,因为C#中没有此类操作员.它只是XOR操作员. 对于"权力",请使用 Math.pow . 您可以从此页面上看到 c#运营商,^列出在"逻辑(布尔和位)"类别下,这意味着它既可以处理布尔值,又可以处理二进制值(对于位xor).
8 2024-04-17
编程技术问答社区
XOR运算符-它是如何工作的?
您可以用简单的英语解释我什么是XOR(^)操作员及其在以下代码中的作用: public int GetHashCode(Box bx) { int hCode = bx.Height ^ bx.Length ^ bx.Width; return hCode.GetHashCode(); } 解决方案 Xor代表独家或.它确保A或B是真实的,但绝不是两者兼而有之.在这种情况下,我们正在做一个位操作,以便您可以对结果进行不错的图表,如下所示; 0 ^ 1 = 1 1 ^ 1 = 0 1 ^ 0 = 1 0 ^ 0 = 0 由于您将其应用于整数,因此将上述结果应用于操作数中的每个位.因此,只要说您的高度,长度和宽度分别为1、2、3. 您首先有 0001 ^ 0010导致0011,然后将其xor x x o 0011 ^ 0011,它给您0000 编辑:从评论中提供Wiki链接以补充我的解释; http://en.wikipedia.or
12 2024-04-15
编程技术问答社区
为什么在使用这种复合形式时,用XOR交换值会失败?
我找到了此代码来交换两个数字而不使用第三变量,使用XOR ^运算符. 代码: int i = 25; int j = 36; j ^= i; i ^= j; j ^= i; Console.WriteLine("i:" + i + " j:" + j); //numbers Swapped correctly //Output: i:36 j:25 现在,我将上述代码更改为此等效代码. 我的代码: int i = 25; int j = 36; j ^= i ^= j ^= i; // I have changed to this equivalent (???). Console.WriteLine("i:" + i + " j:" + j); //Not Swapped correctly //Output: i:36 j:0 现在,我想知道,为什么我的代码给出不正确的输出? 解决方案 编辑:
10 2024-04-11
编程技术问答社区
在一个非常大的文件上进行XOR
我想Xor一个很大的文件(〜50 GO). 更准确地说,我想通过用键3847611839 X X X X X X X X X键(由于缺乏内存)的32个字节(由于缺乏内存),然后创建(一个after after block)一个新的密码文件. > . 谢谢您的任何帮助! 解决方案 这听起来很有趣,听起来不像是作业. 我没有以前的XOR加密文件可以尝试,但是如果您向前转换一个文件,则没有差异. 我至少尝试过.享受! :)这个XOR每4个字节与0xe555e5bf,我想这是您想要的. 这是Bloxor.c // bloxor.c - by Peter Boström 2009, public domain, use as you see fit. :) #include unsigned int xormask = 0xE555E5BF; //3847611839 in hex. int main(int argc, c
12 2024-04-10
编程技术问答社区
如何使用比特|明智的XOR对文本文件进行加密?
我正在尝试通过使用左右字符的位XOR操作从另一个文件(keys.txt)中使用两个特定键来对文本文件进行加密,但是我在前面收到了不可读取的代码原始文本文件(没有更改),这是不正确的.我正在使用两个文本文件: 1)input.txt-包含要加密的消息 2)keys.txt-其中包含两个字符,这些字符可在input.txt中对每个字符执行XOR操作(字符1是键1,字符2是键2) 我程序中的以下代码: str[i]=str[i]^str2[2]; str[++i]=str[i]^str2[1]; break; 是应该执行XOR操作的代码行 注意我所需的输出应该看起来与此相似: m@#emi(> 9s(@)h#fmn#xgmmmmu,h!gmr(dmi" vmd,f(s!xmu%dmm" c> u(s>,o)9i(9t?u! d>,m!,e;@#b(gmu%d4,s(:@$ u $ o*" omu%dmr%h#f!d`v $ m!4n8.n dm@#emk
8 2024-04-09
编程技术问答社区
如何用C语言对一个字符串进行XOR窜改,然后用同样的函数再返回?
我试图在程序中混淆一个字符串.目前,我只有一个简单的字符串反转工作.我希望能够执行XOR争夺数据以使其更安全,但是我尝试过的方法不起作用. 使用相同的功能和输入类型来解码字符串.这是字符串逆转的问题,因为它只是反转,但是可以轻松地使用Xoring完成而不会变得太复杂吗?我更喜欢像逆转一样仅保留一个字符串.这是我的逆转功能. void reverse_string(unsigned char *buf, int length) { int i; unsigned char temp; for (i = 0; i
4 2024-04-09
编程技术问答社区
C语言中的XOR运算符
我在识别何时使用XOR操作员时遇到一些困难.钻头和/或非常直截了当.当您想掩盖钻头时,请使用一个位和(常见用例是IP地址和子网掩码).当您想打开位时,请使用包容性或.但是,XOR总是让我得到我,我觉得如果需要使用XOR的面试中的一个问题,我将永远不会得到它.有人可以阐明何时使用它和一些常见用例. 解决方案 您使用独家或翻转位 - 被关闭的位,反之亦然.这可以方便地交换两个数字,而没有第三个数字的空间. 0x0A ^ 0xFF = 0x03 ( 00001010 ^ 11111111 = 11110101 ) 交换数字: operation example A B initial: 0011 1010 a = a^b; 1001 1010 b = a^b; 1001 0011 a = a^b; 1010 0011 ,如您所见,数字(在这种情况下为nibbles)a和b交换而无需使用
16 2024-04-08
编程技术问答社区
在一个重复元素的数组中找到两个非重复元素的XOR操作?
假设我有一个带有2N+2个元素的数组.数组中的n个元素发生了两次,其余两个元素是唯一的.您必须在O(N)时间和O(1)空间中解决此问题.解决方案之一是使用XOR.但是我无法理解这一点.谁能帮助我,或者可以给我更好的解决方案? 问题和解决方案的链接是 解决方案 首先 - 请注意,a xor a == 0,对于每个a. 假设您有两个唯一的数字 - x,y. 如果您在每个元素上进行XOR,则最终会得到一个等于x xor y的单个数字(因为每个骗子对自身无效),并且至少具有一个" up".选择这个位(如果有更多的话,您要拿哪一点点),然后将列表分为两个子列表: (1)所有具有此位的数字. (2)所有具有此尚不设置的数字. 一个唯一数字之一具有此位,另一个没有(否则 - 首先不是"向上"),因此您在每个列表中都有一个唯一数字. 再次迭代每个列表,并在所有元素上进行XOR,结果是此列表中的唯一数字,因为每个重复对逐对无效.
6 2024-04-08
编程技术问答社区
什么是XOR和?
我不确定这个术语的确切定义. 我知道,位XOR操作逐渐变化,并将相应位置位置的XOR置于XOR.此结果是否称为" XOR总和"?如果没有,什么是XOR总和,您如何使用XOR实现此添加? 解决方案 在一点明智的XOR操作中: a b a^b ----------- 0 0 0 0 1 1 1 0 1 1 1 0 XOR总和是指整数上的连续XOR操作. 假设您的数字从1到N>,并且必须找到其XOR总和,则对于N = 6,XOR总和将为1^2^3^4^5^6 = 7. 1 = 001, 2 = 010, 3 = 011, 4 = 100, 5 = 101, 6 = 110 1^2 = 1^2 = 001^010 = 011 = 3 (1^2)^3 = 3^3 = 011^011 = 000 = 0 (1^2^3)^4 = 0^4 = 000
6 2024-04-07
编程技术问答社区
我如何使用SIMD来加速XOR两个内存块?
我想尽快XOR两个内存,我该如何使用SIMD加速? 我的原始代码如下: void region_xor_w64( unsigned char *r1, /* Region 1 */ unsigned char *r2, /* Region 2 */ int nbytes) /* Number of bytes in region */ { uint64_t *l1; uint64_t *l2; uint64_t *ltop; unsigned char *ctop; ctop = r1 + nbytes; ltop = (uint64_t *) ctop; l1 = (uint64_t *) r1; l2 = (uint64_t *) r2; while (l1
20 2024-04-07
编程技术问答社区
XOR链接列表的C代码
我一直在尝试实现 xor链接列表正确地做. 由于XOR链接列表涉及地址操作吗? ,是否可以在C中实现它? 如果给出了一些实际的工作代码,我将非常感谢. 解决方案 这是我以前从未见过的一个有趣的想法.有了当今相当丰富的内存,似乎很少有收益(尽管并非所有平台都齐平有内存). 编辑在做我的实际工作时,我的思想不断向后移动,因此我添加了该功能以创建新节点并将其放在给定的端.现在更漂亮.添加节点和遍历函数对称是相当酷的.两者都不需要知道方向.只需将其列入列表的一端,然后才能正确操作. 并且根据达伦的评论(谢谢),我将int更改为intptr_t的可移植性. #include #include #include // gcc needs this for intptr_t. typedef struct xorll { int value; struct xorll *np; }
4 2024-04-07
编程技术问答社区
C/C++中简单的XOR加密程序
我正在尝试使用XOR加密/解密文件.我有以下加密/解密程序,其中每个字节都是XOR的,并且结果是由位于先前位置的字节的值减去的. ASM表示如下 crypt: mov dl, [eax+ecx] ; read byte xor dl, 0C5h ; xor it with oxC5 sub dl, [eax+ecx-1] ; sub the previous byte mov [eax+ecx], dl ; save the new byte dec eax ; decrement pointer test eax, eax jg short crypt ; 这就是我的加密例程的外观,我正在尝试将此C/C ++移植.我的代码如下 #include unsigned int xorkey = 0xC5; int main(int argc, char *argv[]) { if(argc
14 2024-04-07
编程技术问答社区
C语言中逻辑运算符的意义何在?
我只是想知道c中是否有XOR逻辑运算符(类似于&& for and tor xor).我知道我可以将XOR分为and,nots和ors,但是简单的XOR会好得多.然后,我想到,如果我在两个条件之间使用普通的XOR位算子,则可能会起作用.为了我的测试. 考虑: int i = 3; int j = 7; int k = 8; 只是为了这个相当愚蠢的例子,如果我需要 k 要么大于 i i 或大于 j 两者都非常方便. if ((k > i) XOR (k > j)) printf("Valid"); else printf("Invalid"); 或 printf("%s",((k > i) XOR (k > j)) ? "Valid" : "Invalid"); 我放了位xor ^,它产生了"无效".将两个比较的结果放在两个整数中导致两个整数包含1,因此XOR产生了一个错误.然后,我尝试了&&|位运算符,都给出了预期的结果.所有这一切都知道真
12 2024-04-06
编程技术问答社区