A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 三月小雨 中级黑马   /  2015-8-10 21:26  /  385 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

2 个回复

倒序浏览
只是不懂补码,反码的具体用处是什么
回复 使用道具 举报
自己顶沙发
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马