#include<stdio.h>
int main()
{
unsigned char a,b;
printf("Enter first number : ");
scanf("%d",&a);
printf("Enter 2nd number : ");
scanf("%d",&b);
printf("a&b = %dn", a&b);
printf("a|b = %dn", a|b);
printf("a^b = %dn", a^b);
printf("~a = %dn",a = ~a);
printf("b<<1 = %dn", b<<1);
printf("b>>1 = %dn", b>>1);
return 0;
}
我正在接受用户的输入,但我得到了错误的输出,我如何修改i***
error
scanf
的这些调用
scanf("%d",&a);
和
scanf("%d",&b);
使用不正确的格式规范。
变量a
和b
被声明为具有类型unsigned char
unsigned char a,b;
如果你想在这些变量中输入整数,你需要写
scanf("%hhu",&a);
和
scanf("%hhu",&b);
所以你的程序看起来像
#include <stdio.h>
int main( void )
{
unsigned char a, b;
printf( "Enter first number : " );
scanf( "%hhu", &a );
printf( "Enter 2nd number : " );
scanf( "%hhu", &b );
printf( "a&b = %dn", a & b );
printf( "a|b = %dn", a | b );
printf( "a^b = %dn", a ^ b );
printf( "~a = %dn", a = ~a );
printf( "b<<1 = %dn", b << 1 );
printf( "b>>1 = %dn", b >> 1 );
}
程序输出可能看起来像
Enter first number : 10
Enter 2nd number : 15
a&b = 10
a|b = 15
a^b = 5
~a = 245
b<<1 = 30
b>>1 = 7