2.1.4 表示字符串
- C语言中一般用ascll码保存字符信息
ascll字符编码仅适用于英文文档,对于不同语言的文字编码一般使用unicode
2.1.5 表示代码
- 同一段代码在不同的机器中保存时,由于不同的指令集和编码方式,其产生的机器代码也不相同
2.1.6 布尔代数
- 将逻辑值ture 和 false 编码为1和0 称为布尔值
- 布尔运算
~:not(非)
&:and(与)
|:or(或)
^:exclusive-or(异或) - 布尔环:
由于a ^ a=0 则有了0 ^ 0=1 ^ 1=0,故(a ^ b) ^ a = b
一个示例
void inplace_swap(int *x,int *y){*y=*x^*y;//step 1
*x=*x^*y;//step 2
*y=*x^*y;//step 3
}
2.1.7 C语言中的位级运算
- C语言支持按位布尔运算
- 确定位运算结果的方式是将数据扩展为二进制后每一位执行二进制运算后转回十六进制
- 位级运算的一个应用是掩码运算,如
要选出x中最低有效字节的值,便可令x&0xff。
2.1.8 C语言中逻辑运算符
- || && !分别对应命题逻辑中的or and not
2.1.9 C语言中的移位运算
- C语言提供了一种移位运算<<和>>
- 向右移位较为特殊,分为逻辑右移和算术右移,其中逻辑右移和左移相似,但是算术右移时会在左边补上最高有效位的值
例如 x=10010101 此时计算x>>4
会得到11111001 - 当移动位数为k,且k很大时,例如
#includeint lval=0xfedcba98<<32;
int aval=0xfedcba98>>36;
unsigned uval=0xfedcba98u>>40;
C语言规避了这种情况,在以上的运算中,移位分别为0,4,8。
![](/upload/ad_content/xuanchuantu-21.jpg)
创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站设计制作、
网站设计、海曙网络推广、小程序定制开发、海曙网络营销、海曙企业策划、海曙品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;
创新互联为所有大学生创业者提供
海曙建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
分享标题:csapp学习笔记(第二章)2.1.4-2.1.9-创新互联
当前网址:
http://bjjierui.cn/article/deggci.html