/* subst.c -- 在字符串中替换 */
#include <stdio.h>
unsigned srl(unsigned x,int k);
int sra(int x,int k);
int main(void)
{
printf("xsra = %d\n",srl(-1,1));
printf("xsrl = %d\n",sra(-1,1));
return 0;
}
unsigned srl(unsigned x,int k){
unsigned xsra = (int) x>>k;
xsra = (~(-1<<(sizeof(int)*4-k))) & xsra;
return xsra;
}
int sra(int x,int k){
int xsrl = (unsigned) x>>k;
xsrl = ((-1<<(sizeof(int)*4-k))) | xsrl;
return xsrl;
}