正在加载图片...
求反。 例如~9的运算为: (000000000)结果为:11110 1215左移运算 左移运算符“<<〃是双目运算符。其功能把<<"左边的运算数的各二进位全部左移若干 位,由<"右边的数指定移动的位数,高位丢弃,低位补0。 例如 a<< 指把a的各二进位向左移动4位。如a=000001(进制3),左移4位后为00110000(+进 1216右移运算 右移运算符ν>》〃是双目运算符。其功能是把ν>〉>〃左边的运算数的各二进位全部右移若干 位,">》“右边的数指定移动的位数 例如 设a=15, 表示把0000011移为0000001(十进制3)。 应该说明的是,对于有符号数,在右移时,符号位将随同移动。当为正数时,最高位补 0,而为负数时,符号位为1,最高位是补0或是补1取决于编译系统的规定。 Turbo C和很 多系统规定为补1 【例12.4】 0){ unsigned a, b: scan f("%d",&a); b=a>>5 b=b&15; printf(a=%d\tb=%d\n", a, b) 请再看一例! 【例12.5】 maino( ar a- p=(p<8)|b d=p&Oxff求反。 例如~9 的运算为: ~(0000000000001001)结果为:1111111111110110 12.1.5 左移运算 左移运算符“<<”是双目运算符。其功能把“<< ”左边的运算数的各二进位全部左移若干 位,由“<<”右边的数指定移动的位数,高位丢弃,低位补 0。 例如: a<<4 指把 a 的各二进位向左移动 4 位。如 a=00000011(十进制 3),左移 4 位后为 00110000(十进 制 48)。 12.1.6 右移运算 右移运算符“>>”是双目运算符。其功能是把“>> ”左边的运算数的各二进位全部右移若干 位,“>>”右边的数指定移动的位数。 例如: 设 a=15, a>>2 表示把 000001111 右移为 00000011(十进制 3)。 应该说明的是,对于有符号数,在右移时,符号位将随同移动。当为正数时,最高位补 0,而为负数时,符号位为 1,最高位是补 0 或是补 1 取决于编译系统的规定。Turbo C 和很 多系统规定为补 1。 【例 12.4】 main(){ unsigned a,b; printf("input a number: "); scanf("%d",&a); b=a>>5; b=b&15; printf("a=%d\tb=%d\n",a,b); } 请再看一例! 【例 12.5】 main(){ char a='a',b='b'; int p,c,d; p=a; p=(p<<8)|b; d=p&0xff;
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有