三道C语言位运算题目,求大神!

3、输入1000~32767之间的一个短整型数a,保留其高8位,其余位清零,构成新数b。

4、一无符号短整形数i, 用位运算对其实现循环左移4。(注:循环左移指的是从左边移出去的数据再从右边移回来)

5、已知变量a的变化范围为0~7之间的整数,变量b的变化范围为0~31之间的整数,变量c的变化范围为0~255之间的整数,请用位段来表示这3个变量,并用printf输出位段内容。

第1个回答  2013-05-22
3.这道题只要把任意一个数减去2^8就可以了!
4.有个为运算符<<你只要 i<<4;然后输出 i 就可以了!
5.实在没有明白你是什么意思,我们c主编也没有看懂你要干什么!
第2个回答  2013-05-24
这个不是很难把
第3个回答  2013-05-22
3、b = a & 0xff00;

4、
unsigned short tmp;
unsigned short a = 0xf00f;
tmp = (a & 0xf000) >> 12;
a <<= 4;
a |= tmp;

5、
#include <stdio.h>
struct node
{
unsigned int a:3;
unsigned int b:5;
unsigned int c:8;
};

int main(int argc, char *argv[])
{
node n;
n.a = 0xffff;
n.b = 0xffff;
n.c = 0xffff;
printf("%d, %d, %d\n", n.a, n.b, n.c);
return 0;
}

下面有一些关于C语言问题,希望大伙儿侃侃,最好解释详细,谢谢呢?
这是一道位运算,a&0377等同于011&011111111的运算,这两个与一下值为011,也就是3 第二题:11 这也是位运算,先把3,10,15化为二进制,依次为:011,1010,1111.a|b&c先运行b&c得到1010,再跟a或运算(一位一位或)得到1011,也就是11.第三题: D) h\/2*(a+B)h\/2等于1,而代数中等于1.5.这...

c语言位运算问题9 |5为什么等于13如下图
| 是位或运算符,运算规则如下:1|1=1;0|1=1;1|0=1;0|0=0;9的二进制形式: 00001001 5的二进制形式: 00000101 进行|运算: --- 等于: 00001101(13的二进制形式)所以:9|5=13 供你参考

c语言位运算问题?
c语言位运算问题解答:要解答这个问题我们先来看一个例子,代码如下图一,图中右边是问题中得到代码,左边是这段代码的汇编指令。两种情况的不同点详细说明如下:第一种情况:printf("%d",2>>64);由图中的汇编代码可以看出,如果两个数都是常数的情况下,代码中是不含对应的汇编指令的,因为编译器...

C语言位运算题目
inta=9,b=5,c;c=a|b;printf("a=%d\\nb=%d\\nc=%d\\n",a,b,c);} 3.按位异或运算按位异或运算符“^”是双目运算符。其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。参与运算数仍以补码出现,例如9^5可写成算式如下:00001001^0000010100001100(十进制为12)...

c语言的位运算疑惑
恩。分析下思路。先针对你的这个题目。1:040 是八进制的表示。换成十进制是 4*8+0*1=32 2:ASCII编码表中 32表示的是空格符号。 char中寸的是ASCII编码,所以是32 3:位移运算:>>表示右移位 我以8为例。8的二进制是1000, 8>>1对应的二进制形式就是1000——0100看到变化了没有。所以右...

关于C语言的几道简单题目
A BD DE 48%10\/2的值为4,因为%表示取余数48%10的值就是8,\/表示取整,所以后面8\/2=4,所以表达式的值是4

C语言问题,求大神解决,谢谢拉。。我是小白,解释下原因
x<<=3:把x的二进制位向左移动3位 因为x=1,所以 x的二进制为:0000 0001 向左移动3位后为:0000 1000 0000 1000转为10进制位:2^3 = 8 所以,选:D

c语言的位运算,10^5等于多少。不是100000!!
这是二进制的位运算:10D^5D=1010B^0101B=1111B=15D 按照异或运算的规则,两个位相同得到0,不同得到1

C语言的位运算:-3>>2怎么算?结果是-1。大神们具体一点,谢啦_百度知 ...
以一个字节为例来说明:char ch=-3;在计算机中数值是用补码来存储的,故ch在内存中的内容为:11111101 >>2 右移2位,因为是有符号数,故前面补符号位1,结果为 11111111 (01被移走,前面补了两个1)这就是-1的补码 所以,结果输出会是-1 ...

C语言——位运算
C语言中,位运算是一种独特且强大的功能,它直接作用于二进制位级,对数据进行操作。位运算符包括按位取反(~)、左移(<>)、按位与(&)、按位或(|)和按位异或(^)。以下是这些运算符的简介和示例:1. 按位取反(~):单目运算符,将运算数所有位取反,如无符号字符a=18,~a的结果...

相似回答