首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深入理解计算机系统(2.3)------布尔代数以及C语言运算符

深入理解计算机系统(2.3)------布尔代数以及C语言运算符

作者头像
IT可乐
发布2018-01-04 14:40:34
1.5K0
发布2018-01-04 14:40:34
举报
文章被收录于专栏:IT可乐IT可乐

  本篇博客我们主要讲解计算机中的布尔代数以及C语言的几个运算符。

1、布尔代数

  我们知道二进制值是计算机编码、存储和操作信息的核心,随着计算机的发展,围绕数值0和1的研究已经演化出了丰富的数学知识体系。而布尔代数便是乔治.布尔(George Boole)将逻辑值 True(真)和 False(假)编码为二进制0和1,用来研究逻辑推理的一门数学学科。

  对于布尔代数,我们需要知道以下几种常见的运算符:

  ①、布尔运算 ~ 对应逻辑运算非。也就是取反的意思,假设 p 是0,那么~p 就是1;反之亦然。

  ②、布尔运算 & 对应逻辑运算与。有且只有 p 和 q 都为 1 时,p & q 才等于1。

  ③、布尔运算 | 对应逻辑运算或。p 和 q 只要有一个为 1,那么 p | q 都等于1。

  ④、布尔运算 ^ 对应逻辑运算异或。如果p、q两个值不相同,则异或结果为1。如果p、q两个值相同,异或结果为0。

  上面说的规则都是单个二进制进行运算。如果将其扩大到w位二进制。比如两个二进制[aw,aw-1...a1]和[bw,bw-1...b1],它们的四种运算则是对两者每一个相对应的位上做相应的运算。

  这里我们给个例子:假设 w=4,a=[0110],b=[1100]。那么四种运算 a&b、a|b、a^b、~b 结果分别如下:

2、C 语言中的位级运算

  C 语言是支持按位布尔运算的。也就是我们上面所讲的四种布尔运算符其实也是 C 语言所使用的。在 C 语言中,这些运算符能运用到任何 “ 整型” 的数据类型。也就是声明为 char 或者 int 的数据类型,无论它们有没有 short、long或者  unsigned。下面给出对 char 数据类型表达式求值的例子:

3、C 语言中的 逻辑运算

  C 语言中的逻辑运算符 ||、&&、! ,分别对于命题逻辑中的或、与、非。注意 逻辑运算 和 位级运算 它们的功能是有很大的区别的。

  ①、逻辑运算认为所有非 0 的参数都表示 true,只有参数 0 表示 false。它们返回 0 或 1 ,分别表示结果 false 和 true。

  ②、逻辑运算 && 和 || 有短路功能。比如对于表达式 p&&q,p||q,如果p的值可以确定整个表达式的结果,那么将不会计算q的值(q可能是一个表达式)。但是对于p & q则不同,无论p表达式的值为何,都要计算q表达式的值。

4、C 语言中的 移位运算

  移位运算分为左移右移。

  左移:运算符是 << ,丢弃最高位,低位补0

    对于一个二进制数[aw,aw-1,...a1]来说,如果将它进行左移运算,则x << k = [aw-k,aw-k-1,...a1,0,...0]。此时相当于最高的那k位都被丢弃了,在最右端补了k个0。

   右移:运算符是 >>。右移一般机器支持两种形式,逻辑右移和算术右移。

    逻辑右移在左端补k 个0。C语言中对于无符号数据必须逻辑右移。

    算术右移是在左端补 k 个最高有效位的值。

   这在Java当中是有明确定义的。表达式 x>>k会将 x 算术右移 k 个位置。表达式 x>>>k 会将 x 逻辑右移 k 个位置。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-09-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、布尔代数
  • 2、C 语言中的位级运算
  • 3、C 语言中的 逻辑运算
  • 4、C 语言中的 移位运算
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档