黑马程序员技术交流社区

标题: 位运算符介绍(一) [打印本页]

作者: 三月小雨    时间: 2015-8-10 21:26
标题: 位运算符介绍(一)
iOS基础-学习笔记83
12-为什么要引入反码、补码?
首先,因为人脑可以知道第一位是符号位,在计算的时候我们会根据符号位,选择对真值取余的加减。(其值的概念在本文最开头)但是对于计算机,加减乘数已经是最基础的运算,要设计的尽量简单,计算机辨别“符号位“显然会让计算机的基础电路设计变得十分复杂!于是人们想出了将符号位也参与运算的方法。我们知道,根据运算法则减去一个正数等于加上一个负数,即:1-1=1+-1=0,所以机器可以只有加法而没有减法,这样计算机运算的设计就更简单了。
14-位运算符介绍(一)
         位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。
         C语言提供了6个操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的charshortintlong类型。
(1)      & 按位与
只有对应的两个二进制位均为1时,结果位才为1,否则为0 口诀:同为11
例如:9&13=9
    1001
& 1101

1001
(2)      | 按位或
只要对应的二个二进位有一个为1时,结果位就为1,否则为0
    1001
|  1101

1101
(3)      ^ 按位异或
当对应的二进制位相异(不相同)时,结果为1,否则为0
    1001
^  1101

   0100
4~取反
各二进位进行取反(01,10
~9=-10
9的原码:0000 0000  0000 0000  0000 0000  0000 1001
反码:1111 1111  1111 1111  1111 1111  1111 0110 //-10
知道补码求原码:也是符号位不变,其他各位取反+1
1111 1111  1111 1111  1111 1111  1111 0110
取反
1000 0000 0000 0000  0000 0000  0000 1001
+1
1000 0000 0000 0000  0000 0000  0000 1010 //-10

作者: 飓风少年    时间: 2015-8-10 21:27
只是不懂补码,反码的具体用处是什么
作者: 三月小雨    时间: 2015-8-10 21:29
自己顶沙发




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2