嘿,我一直有一个C程序的麻烦。我必须编写的程序模拟VAX计算机的操作。我必须接受2个变量x和y来生成z。 内有两个功能,第一个按位C编程
- 设置z为1其中z的y各比特位置= 1个
- 第二组为0,其中的y各比特位置= 1
我并不是要求某人为我这样做,我只需要解释这是如何实现的,因为我有两个我需要的功能。我正在考虑这样的事情,但我不知道它是否正确。
#include<stdio.h>
int main()
{
int x1 = 1010;
int y1 = 0101;
bis(x1, y1);
bic(x1, y1);
}
/* BIT SET function that sets the result to 1 wherever y = 1 */
int bis (int x, int y)
{
int z = x & y;
int result = ?;
printf("BIT SET: \n\n", result);
return result;
}
/* BIT CLEAR function that sets result to 0 wherever y = 1 */
int bic(int x, int y)
{
int z = x & y;
int result = ?;
printf("BIT CLEAR:\n\n ", result);
return result;
}
对穷人命名约定的道歉。无论如何,我在这个节目的正确轨道上?
那些不是二进制数,'int y1 = 0101;'可能不是你认为的数字。 – Marlon 2011-03-02 22:33:45
你可以对操作语义更精确一点吗?你是否熟悉按位或,而不是?我相信你所需要的可能只是'z = x | y;'(x或y)和'z = x&(〜y)'。 (x而不是y) – Zulan 2011-03-02 22:38:56
我很抱歉没有正确地声明变量,我一直在做过去2周的按位操作,包括位移,但至于检查位位置,我从来没有触及那个或者是 ANDING会给我想要的结果吗?我很抱歉 ,但我有一些困难与逐位的东西 – PyGuy91 2011-03-02 22:45:27