学习C语言位运算的概念(原码,反码,补码)

来源:互联网 发布:kmspico有病毒 知乎 编辑:程序博客网 时间:2024/05/16 06:58

                c语言既具有高级语言的特性,又具有低级语言的功能,尤其是它提供的指针运算位运算,满足了编写系统软件的需要,因而具有广泛的用途和很强的生命,也是C语言能够大部分取代汇编语言的原因之一。---书上写的,我也是这么认为的。

       位运算就是对是进行二进制运算,是对计算机内部的二进制形式数据进行的运算。 C语言提供的位运算只适用于整形或字符型数据不适用于实行数据。一个数有原码,反码和补码三种不同的表示。

   原码:

           数值的原码是指最高位用作符号位,其余各位代表数值本身的绝对值(二进制)的表示形式。符号位为0表示正数为1的表示负数

9的原码:<span style="color:#ff0000;">0</span>000 0000 0000 1001

-9的原码:<span style="color:#ff0000;">1</span>000 0000 0000 1001

反码:

        数值的反码表示有两种情况:正数的反码与原码相同;负数的反码为该数的绝对值的原码各位取反(0变为1,1变为0)。

 9的反码:0000 0000 0000 1001 本身

-9的反码:1111 1111 1111 0110 加1

补码:

        数值的补码也有两种情况:正数的补码与反码形同;负数的补码为其反码加1。

 9的补码:0000 0000 0000 1001

-9的补码:1111 1111 1111 0110

总结:原码最高位是符号位,正数的原码,反码,补码相同。负数的反码为该数绝对值取反(符号位不算),补码是反码加1。


  

0 0