编写一个函数invert(x,p,n),该函数返回对X执行下列操作后的结果值:将X重从第P位开始的n个(二进制)位求反(即,1变成0,0变成1),X其余各位保持不变
帮我解下这个问题啊 谢谢了 就用C语言 不要用太高级的语言啊 我看不懂啊 谢谢学长们了
>> 本文固定链接: http://www.vcgood.com/archives/2823
编写一个函数invert(x,p,n),该函数返回对X执行下列操作后的结果值:将X重从第P位开始的n个(二进制)位求反(即,1变成0,0变成1),X其余各位保持不变
帮我解下这个问题啊 谢谢了 就用C语言 不要用太高级的语言啊 我看不懂啊 谢谢学长们了
>> 本文固定链接: http://www.vcgood.com/archives/2823
你必须先 登录才能发表评论。
void invert(char *x,int p,int n)
{
int i;
for(i=p;i<=n;i++)
{
if(*(x+i)==’0′)
*(x+i)=’1′;
if(*(x+i)==’1′)
*(x+i)=’0′;
}
while(*x!=’\n’)
{
printf(“%c”,*x);
x++;
}
}
二楼的老兄未免太天真了吧!!!
char *x指的是字符呀!不是二进制啊!!把字符这样指来指去,不对吧!!!
怎么不行啊?你可以测试啊?我不知道你质疑什么?
#include<stdio.h>
#include<stdlib.h>
void invert(char *x,int p,int n);
int main()
{
char a[6];
int i;
for(i=0;i<6;i++)
{
scanf(“%c”,&a[i]);
}
invert(a,2,3);
system(“pause”);
return 0;
}
void invert(char *x,int p,int n)
{
int i;
for(i=p;i<=n+p;i++)
{
if(*(x+i)==’0′)
*(x+i)=’1′;
if(*(x+i)==’1′)
*(x+i)=’0′;
}
while(*x!=’\n’)
{
printf(“%c”,*x);
x++;
}
}
我编的:(还在修改中)
#include <stdio.h>
void main(void)
{
char *x;
int p=4,n=3;
x=&c;
invert(char *x,int p,int n)
}
void invert(char *x,int p,int n)
{
int i;
for(i=p;i<=n;i++)
{
if(*(x+i)==’0′)
*(x+i)=’1′;
if(*(x+i)==’1′)
*(x+i)=’0′;
}
while(*x!=’\n’)
{
printf(“%c”,*x);
x++;
}
}
我测试了,你的程序是对一段字符串进行操作,比如:”abcdefghijk” 前六个字母你不变,对后面进行操作。但楼主的要求是对二进制进行操作! 比如字母’c'的二进制是多少,然后对二进制修改啊!!!
我测试了,你的程序是对一段字符串进行操作,比如:”abcdefghijk” 前六个字母你不变,对后面进行操作。但楼主的要求是对二进制进行操作! 比如字母’c'的二进制是多少,然后对二进制修改啊!!!
还是研究研究吧!
我不知道。我理解的是他输入的只是11000110这样的二进制位。没像你这么考虑。你最好问问人家需要什么样的程序!
感谢你们啊 谢谢你们能抽空帮我解决一下问题 就是1110110110101这样的二进制 谢谢啦
支持支持啊