问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言大二进制的与 或 非操作怎么用代码编写 返回结果是字符串

发布网友 发布时间:2022-06-03 05:49

我来回答

2个回答

热心网友 时间:2023-10-12 18:17

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char *or(char *ch1,char *ch2,int isr)
/*
ch1和ch2是要参与or运算的两个操作数,isr用于确定运算结果的保存位置,若为0则通过malloc()
函数分配新的空间保存结果,若为非0值则结果将覆盖掉ch1和ch2中较长的那一个
*/
{
char *ort=NULL,*pl,*ps;
int i=0;
size_t len;

if (strlen(ch1)>=strlen(ch2)) {
pl=ch1;
ps=ch2;
}
else
{
pl=ch2;
ps=ch1;
}
i=(len=strlen(pl))-strlen(ps);

if (isr) {
  ort=pl;
  for (pl+=i;*pl;pl++,ps++) {
 *pl=*pl=='1'||*ps=='1'?'1':'0';
  }
}
else
{
if((ort=malloc((len+1)*sizeof(char)))==NULL) return NULL;
strncpy(ort,pl,i);
for (pl+=i; *pl; pl++,ps++)
{
ort[i++]=*pl=='1'||*ps=='1'?'1':'0';
}
ort[i]='\0';
}

return ort;
}
char *not(char *ch,int isr)
/*
ch是要参与not运算的操作数,isr用于确定运算结果的保存位置,若为0则通过malloc()
函数分配新的空间保存结果,若为非0值则结果将覆盖掉ch
*/
{
int i;
char *ort;
if (!isr) {
if ((ort=calloc(strlen(ch)+1,sizeof(char)))==NULL) return NULL;
for (i = 0; ch[i]; i++) ort[i]=ch[i]=='1'?'0':'1';
}
else
for (ort=ch,i = 0; ch[i]; i++) {
ch[i]=ch[i]=='1'?'0':'1';
}
return ort;
}
int main(int argc, char* argv[])
{
char a[]="101010",b[]="10101",*p;
puts(or(a,b,1));
puts(not(b,1));
return 0;
}

追问非常感谢,写的非常好,还有与操作我还不是很懂,你能继续帮我编写下吗?

热心网友 时间:2023-10-12 18:18

按位取或 | (键盘上右斜线上面那个断开的竖线)
按位取与 &
按位取非 ~ (键盘上波浪线,在数字1前面那个)
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
The ___ of the food is very terrible, but it ___ very nice. Worm.Win32.Viking.k病毒描述 IM-Worm.Win32.VB.c清除方案 Worm.Win32.VB.nk 是什么样的蠕虫病毒啊,会怎么样你的电脑啊?_百度知 ... 蠕虫病毒Win32.Womble.C简介 email-worm.win32,vb,bk是什么病毒? Email-Worm.Win32.VB.bk,有谁知道这是什么病毒吗现在有些什么 病毒? Worm.Win32.Viking病毒描述 IM-Worm.Win32.VB.c病毒标签 贵州遵义到甘肃省天水市怎么走方便? or (flag=1;flag==1;)在c语言中什么作用? c语言中 or and xor是什么意思 小苏打与白醋反应为什么能除垢 电脑桌面右下方有个音频管理器怎么把它弄掉呢 C语言关于and or的问题 桌面上的音频文件删不掉,怎么办啊???急 c语言中or循环最少做几次? if a or b and z 在c语言是什么意思? c 的or怎么用 桌面音频设置 没了怎么回事 求一种方便面炒面的名字 钢铁侠贷款不还会怎么样? 钢铁侠贷款是否合法? 杭州湾跨海大桥上的观光平台是哪家工作承包的 钢铁侠借钱可以不还吗? 钢铁侠第二贷款还需要服务费吗? 杭州湾跨海大桥平台怎么去 钢铁侠网贷不还款会怎么样,会不会爆通录? 钢铁侠贷款还款了会销账吗? 抗州湾跨海大桥平台近期可观尝? 京东上有白条刷现的吗 京东发行京东白条信用卡能刷PS机吗 现在信用卡poa 机能刷京东闪付白条吗? ogg奥运冠军什么意思 EVCAR汽车是自动挡吗 C1实习期能开共享汽车吗? 深圳zerocar共享汽车的车是手动挡还是自动挡? 驾呗共享汽车都是自动挡的吗? EVCARD共享汽车是自动挡吗? 十多年的杨梅泡酒还能吃吗? 楼上漏水不修楼下有什么办法对付吗 汽车维修行业的出纳实习生怎么写月志 本次护理实习培训中您认为哪些内容对您帮助最大? 请问五星红旗上面的五角星是红色还是黄色 五星红旗为什么是红的,五角星为什么黄色的? 为什么五星红旗的五角星是黄色的 北京中航泰达科技有限公司怎么样? 包头市中航泰达环保科技有限公司待遇怎么样 我想报考个营养师~~~有谁知道潍坊的怎么报名在哪里报名啊??谢谢啦 为什么中国的国旗是红色的而且上面还有5颗*的五角星(1个大的4个小的)呢?