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。