- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我最近在代码中看到上面的运算符,我用谷歌搜索但没有找到。代码如下。请描述这个运算符实际上做了什么?
#include<stdio.h>
int main()
{
unsigned long int i=0;
char ch;
char name1[20],name2[20];
FILE *fp,*ft;
printf("ENTER THE SOURCE FILE:");
gets(name1);
printf("ENTER THE DESTINATION FILE:");
gets(name2);
fp=fopen(name1,"r");
ft=fopen(name2,"w");
if(fp==NULL)
{
printf("CAN,T OPEN THE FILE");
}
while(!feof(fp))
{
ch=getc(fp);
ch=~((ch^i));/*<--Here*/
i+=2;
if(i==100000)
{
i=0;
}
putc(ch,ft);
}
fclose(fp);
fclose(ft);
return 0;
}
最佳答案
C++(以及其他类 C 语言,如 C 和 Java)中的 ~
运算符执行 bitwise NOT operation - 操作数中所有 1 位都设置为 0,操作数中所有 0 位都设置为 1。换句话说,它创建了原始数字的补码。
例如:
10101000 11101001 // Original (Binary for -22,295 in 16-bit two's complement)
01010111 00010110 // ~Original (Binary for 22,294 in 16-bit two's complement)
在您的示例中,ch=~((ch^i))
对 bitwise XOR 执行按位非ch
和 i
然后将结果分配给 ch
。
按位 NOT 运算符有一个有趣的属性,当应用于 two's complement 表示的数字时,它会更改数字的符号,然后减去 1(如您在上面的示例中所见)。
您可能想要熟悉 the different operators of the C++ language因为很难在搜索引擎上搜索运营商。更好的是,您可以获得 a good C++ book它将告诉您有关 C++ 运算符的信息。
关于c - 代字号 (~) 运算符的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3952122/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!