为什么C语言能进行对位(bit)操作? 对位操作有什么效果?

为什么C语言能进行对位(bit)操作? 能对位操作的好处是什么? 对位操作有什么效果?

当然可以对位进行操作。
一般来说,用位运算就是对位操作。位运算包括
^ 异或
| 位或
& 位与
~ 位求反
>> 右移位
<< 左移位

对位操作的好处是快,并且基本上和汇编一一对应,可以直接算出运算时间,计算速度。
很多要表达硬件计算,或者提高运算速度的时候,都会直接用位运算。
比如乘16,位运算就是左移4位等等。

另外一种是位域。
就是定义一种特殊的结构体,里面的成员只有规定的几位。
比如
struct instruction{
unsigned short sr:5;
unsigned short tr:5;
unsigned short op:6;
};
就定义了一个16bit指令的结构,其中
sr : tr : op
1-5 : 6-10 :11-16
然后就可以这样操作
struct instruction mov_r1_r3 = {0x01, 0x03, 0x01};
那么mov_r1_r3实际上等于0x0461
这样编代码一般是为了和硬件接口容易,完全的底层操作
实际代码中极少出现,一般出现于与硬件的接口当中.
温馨提示:内容为网友见解,仅供参考
无其他回答

为什么C语言能进行对位(bit)操作? 对位操作有什么效果?
当然可以对位进行操作。一般来说,用位运算就是对位操作。位运算包括 ^ 异或 | 位或 & 位与 ~ 位求反 >> 右移位 << 左移位 对位操作的好处是快,并且基本上和汇编一一对应,可以直接算出运算时间,计算速度。很多要表达硬件计算,或者提高运算速度的时候,都会直接用位运算。比如乘16,位运算就...

为什么C语言能进行位(bit)操作?
在编程时,有时要为程序定义很多bool型变量 比如:struct XX{ bool bReady,bLoaded,bRender,bShow;};这样很罗嗦,我们换一种方法:1个32位的long型变量 本身可以代表32个bool型 我们先定义 define FLAG_READY 0x0001 define FLAG_SHOW 0x0002 define FLAG_LOADED 0x0004 这样 再搞一个 l...

c语言bit是什么意思啊
在C语言中,Bit常常用于数据结构和位操作运算。在C语言中,Bit Field是一种数据类型,它允许对一个整数类型中的位进行单独控制。具体来说,Bit Field可以让程序员定义一个数据结构,其中的每个成员变量只占用指定数量的位。通过使用Bit Field,我们可以在不占用多余内存的情况下,实现对数据结构中各个位的...

C语言能对硬件直接操作是什么意思,小弟初学者,请高手解答!非常感谢...
C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。因此有人把它称为中级语言。也就是说,C语言可以直接对物理地址进行操作。学习指针是学习C语言中最重要的一环,能否正确理解和使用指针是我们是否掌握C语言的一个标志。在计算机中,所有的数据都是...

C语言允许直接访问物理地址,能进行bit位操作
计算机的基础是 数字逻辑 ,根本上是通过电路的与或非等运算得到结果。而c语言中的位与,位或等运算都是直接对bit进行操作。

“c语言允许直接访问物理地址,能进行位操作”是什么意思啊
计算机中的数据都是以位(bit,比特)来作为基本单位的,C语言能直接对位进行操作,包括求与,并,或,异或,非等。物理地址是一个很宽泛的概念,磁盘,内存等存储设备都有物理地址的说法。物理内存地址指的是硬件实现上物理内存展现给外部总线访问的编码地址,其范围等于物理内存的大小.大家常说的物理...

C语言有什么优点什么缺点?有什么特别之处?
它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。2. 运算符丰富C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,...

c语言具有低级语言的功能,主要体现是那方面
主要是指可以直接进行靠近硬件的操作,由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位(bit)、字节和地址进行操作。

为什么叫做c语言! 有A.B语言吗! 学习C语言具体有什么用途?
c语言是最基础的编程语言,操作系统就是用c编的 C语言与其他计算机语言一样是一种人与电脑交流的规则的集合。有“词汇”丰富,表达能力强的特点,有类似“普通话”的地位(尽管此类比不准确)。电脑启动后所做的除了处理数据还是处理数据,数学是处理数据的唯一手段。数学是电脑语言的单位——语句、变量...

c语言强数据处理能力是什么意思?求详细解答。
1,语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言 2,C语言能直接访问硬件的物理地址,能进行位(bit)操作。兼有高级语言和低级语言的许多优点。3,C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。4,由于C语言允许直接访问物理...

相似回答