第七章
练习7-3
//编写rrotate函数,返回无符号整数x右移n位后的值。
//编写lrotate函数,返回无符号整数x左移n位后的值。
#include <stdio.h>
unsigned rrotate(unsigned x, int n)
{
return (x>>n);
}
unsigned lrotate(unsigned x, int n)
{
return (x<<n);
}
int main ()
{
unsigned x,n;
printf("请输入正整数x:");
scanf("%u",&x);
printf("请输入位移位数n:");
scanf("%u",&n);
printf("\n%u向右位移%u位的值为%u。\n%u向左位移%u位的值为%u。",x,n,rrotate(x,n), x,n,lrotate(x,n));
return 0;
}
练习7-4
//编写set函数,返回将无符号整数x的第pos位设为1后的值。
//编写reset函数,返回将无符号整数x的第pos位设为0后的值。
//编写inverse函数,返回将无符号整数x的第pos位取反后的值。
#include <stdio.h>
unsigned set( unsigned x, int pos)
{
unsigned i=1;
return (x | (i<<pos));
}
unsigned reset( unsigned x, int pos)
{
unsigned i=1;
return (x & ~(i<<pos));
}
unsigned inverse( unsigned x, int pos)
{
unsigned i=1;
return (x ^ (i<<pos));
}
int main ()
{
unsigned x,pos;
printf("请输入正整数x:");
scanf("%u",&x)</