c语言 程序设计 关于二进制 例如1)输入并显示 函数 Y(x)=x^5+x^3+x^2+1 G(x)=x^3+x^2+1 ;2)然后根据G(x) 得到二进制数1101 (其中1101是这样得来的,x^3 一个1,x^2 一个1,X^1 没有,就一个0.最后数字1

来源:学生作业学帮网 编辑:学帮网 时间:2024/05/17 04:56:53

c语言 程序设计 关于二进制
例如
1)输入并显示 函数 Y(x)=x^5+x^3+x^2+1 G(x)=x^3+x^2+1 ;
2)然后根据G(x) 得到二进制数1101 (其中1101是这样得来的,x^3 一个1,x^2 一个1,X^1 没有,就一个0.最后数字1 还是数字1 所以得出1101)Y(x)得到101101
3)然后101101 和1101 得异或 其中1101为被除数.
上面1 2 3 怎么实现啊?可以提供下思路么?有具体最好

下面是我写的代码:
/*---------------------------------代码--------------------------------------*/
#include
#include
// 转化后的二进制最多的位数
#define MAX_BIN_LENGHT 100
// 输入的表达式最多的字符数
#define MAX_EXP_LENGHT 100
// 根据表达式得到二进制数
void getBinary(char *express,int binary[MAX_BIN_LENGHT]);
// 根据两个二进制数,异或得到结果
void getXOR(int binaryY[MAX_BIN_LENGHT],int binaryG[MAX_BIN_LENGHT],int binaryResult[MAX_BIN_LENGHT]);
// 打印二进制数
void printBinary(int binary[MAX_BIN_LENGHT]);
int main(int argc,char *argv[])
{
int binaryY[MAX_BIN_LENGHT]={0}; // 存放Y(x)转化后的二进制数
int binaryG[MAX_BIN_LENGHT]={0}; // 存放G(x)转化后的二进制数
int binaryResult[MAX_BIN_LENGHT]={0}; // 存放两个二进制数异或后的结果
char express[MAX_EXP_LENGHT]; //存放输入的表达式
printf("请输入Y(x)表达式:\n");
scanf("%s",express);
getBinary(express,binaryY);
printf("请输入G(x)表达式:\n");
scanf("%s",express);
getBinary(express,binaryG);
// 得到异或结果
getXOR(binaryY,binaryG,binaryResult);
printf("\nY(x)的二进制为:");
printBinary(binaryY);
printf("G(x)的二进制为:");
printBinary(binaryG);
printf("二者异或结果为:");
printBinary(binaryResult);
return 0;
}
//
void printBinary(int binary[MAX_BIN_LENGHT])
{
/*
*因为binary数组中binary[0]存放的是二进制的最低位,binary[MAX_BIN_LENGHT-1]存放的是二进制的最高位,
*所以输出二进制数时,必须要将数组倒序输出
*/
int i;
for(i=MAX_BIN_LENGHT-1;i>=0;i--)
{
if(binary[i]==1)
{
for(;i>=0;i--)
{
printf("%d",binary[i]);
}
}
else if(i==0)
{
printf("%d",binary[i]);
}
}
printf("\n");
}
/*----------------------------------测试结果-------------------------------------*/
请输入Y(x)表达式:
Y(x)=x^5+x^3+x^2+1
请输入G(x)表达式:
G(x)=x^3+x^2+1
Y(x)的二进制为:101101
G(x)的二进制为:1101
二者异或结果为:100000
/*-----------------------------------------------------------------------*/
下面是一些问题:
1.你的第三条中写道“3)然后101101 和1101 得异或 其中1101为被除数.”,这一条我没怎么看明白,这两个数异或哪里来的被除数啊?这一点我有点疑惑,在程序中我把你的第3条理解为求二者的异或值.
2.这个程序中是假设你输入的表达式是完全符合标准的,没有对一些错误的输入(比如输入Y(x)=x^dd+x^001+x^e2e+34+gg)这一类错误表达式的检测,这一点要注意.
3.开头的两个宏定义二进制最多的位数MAX_BIN_LENGHT、输入的表达式最多的字符数MAX_EXP_LENGHT,你可以根据自己的需要自行更改其具体的大小.

c语言 程序设计 关于二进制 例如1)输入并显示 函数 Y(x)=x^5+x^3+x^2+1 G(x)=x^3+x^2+1 ;2)然后根据G(x) 得到二进制数1101 (其中1101是这样得来的,x^3 一个1,x^2 一个1,X^1 没有,就一个0.最后数字1 C语言有一道程序设计题不会,求大神帮忙啊.求N*N矩阵的主对角线(左上-右下)元素的和并输出. 例如,当矩阵为: 1 6 2 2 3 5 4 5 关于C语言中有符号的整数值范围为什么是从-32768~32767尽量讲得详细些!例如16个1111111111111111头位是符号位,这应是-32767,那-32768怎么 用16位二进制来表示?负数的二进制表示怎么算的?例如:-1 的二 计算机能够自动完成运算或处理过程的基础是什么a.程序设计b.“储存程序”工作原理c.二进制编码d.语言处理 大学C语言 单片机程序设计 计数器设计大学C语言效果要求:用四个LED表示二进制计数值,开关A每开关一次,计数器加1,并通过LED灯表示出当前值;开关B每开关一次,计数器减1;开关C可实现复位 请问C语言中我想把一个正数变为负数怎么变 例如:9变成-9用二进制形式 学好C语言的四种程序结构(1)顺序结构 顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行.例如:a = 3,b = 5,现交换a,b的值,这 c语言计算器程序设计包含加减乘除简单的函数运算 帮我解答一套简单的关于C语言的卷子!(1)一个字符型变量在存储时占用几个个字节的存储空间?(2) 结构化程序设计的基本结构包括有哪些?(3) 下列合法的变量名是( )A)a_b B)$$ab C)3a D)if(4) 表达 关于C语言二进制加法.如图.图3.16下面那句话“”加1以后,两个第字节的16位全为1这句话对么?传不上图片,在谭浩强C语言第四版63页. 为什么c语言中16位二进制数表示的最小值是-32768?就算都写成1(即1111 1111 1111 1111)也是-32767才对? c语言中如何提取二进制数中的某一位? 程序设计题!请用C语言回答哈哈n个元素{1,2,...,n }有n!个不同的排列.将这n!个排列按字典序排列,并编号为0,1,…,-1.每个排列的编号为其字典序值.例如,当n=3时,6 个不同排列的字典序值如下:0 1 2 C语言循环结构程序设计,纯循环小数除2和5之外的每个素数的倒数都可以化为一个纯循环小数,例如:1/7可以化为 0.142857... ,其中142857为其第一循环节;1/13可化为0.076923...,其中076923为其第一循 给出下列表达式的结果 'x' + 'a' / 2* 'c' – 'd' 求大神解释(程序设计基础C语言中的问题) 请C语言高手帮忙做一下c程序设计题目做一个通讯录 C语言.C程序设计的三种基本结构是_________. C语言输出直角三角形例如: