所以我对一般编程很陌生,对基于C和UNIX的操作系统更是如此。
我正在努力学习如何用C编写代码,我正在使用ubuntu操作系统。我在网上找到了一些入门级的任务。所以现在我正在努力完成这个任务:
完成函数code2abc的实现,使其返回与类型的参数代码中指定的2位代码相对应的字符烧焦函数返回的字符应基于代码的以下位内容:
代码/返回值:0000000 1/'A'-00000010/'B'-00000011/'C'
预期输出:
- code2abc(1(="A">
- code2abc(2(='B'
- code2abc(3(="C">
- code2abc(0(=">
- cod2abc(其他任何东西(=''
首先,我真的不知道2位代码的含义以及如何使用它。我在网上找过,但没有找到任何帮助。第二,据我所知,指令暗示函数的输入是一个char值,这对这里提到的二进制代码有什么反应?到目前为止,我已经尝试过:
char code2abc(char code) {
if ((code <'1' != 0) || (code >'3' != 0)) { // referring to ASCII values of the chars
return ' ';
}
return (code + 52); // 52 is the difference of ASCII values between A,B,C and 1,2,3
}
我习惯于使用java,所以我尝试使用我所知道的,但我有一种感觉。当我编译文件时,系统会提醒我没有使用变量"code",当我运行它时,它会返回"(空格(。我正在使用VIM编辑器,可能是语法错误导致编译器无法识别变量吗?
真的会珍惜任何想法或建议!
您可以通过一个简单的switch语句轻松完成这一操作,例如:
char code2abc(const int code){
switch(code){
case 0b01: return 'A';
case 0b10: return 'B';
case 0b11: return 'C';
default: return '';
}
}
这里并没有发生真正的转变,只是一种简单的非此即彼的关系。我想他们想让你做的是看二进制并将其转换为十进制?如果是这样,上述代码将等效于:
char code2abc(const int code){
switch(code){
case 1: return 'A';
case 2: return 'B';
case 3: return 'C';
default: return '';
}
}
就";意思是";在两位代码中,没有。这只是一个分配给字母"A"、"B"one_answers"C"的任意映射。你在任何会议上都找不到它。