c++第二十七天
p135~p140:
1、位运算符。作用于整数类型的运算对象,并把运算对象看成是二进制的集合,提供检查和设置二进制位的功能。
2、bitest:一种可表示任意大小的二进制位集合的标准库类型。
3、关于符号位如何处理没有明确的规定,所以强烈建议仅将位运算符用于处理无符号类型。
4、移位运算符:对运算对象执行基于二进制位的移动操作。(移向边界的位被舍弃掉)
#include<iostream>
using std::cout;
using std::endl;
int main()
{
unsigned int bit1 = ; //
cout << bit1 << endl; //
unsigned int bit2 = bit1 << ; // 00000010,bit1的值并没有改变
cout << bit2 << endl; //
return ;
}
5、位求反运算符。ps:求无符号类型范围的好办法
#include<iostream>
using std::cout;
using std::endl;
int main()
{
unsigned int bit1 = ; // 00000000...0
cout << bit1 << endl; //
unsigned int bit2 = ~bit1; // 1111111...1
cout << bit2 << endl; //
return ;
}
6、位与,位或,位异或。(相异为1,否则就是0)
#include<iostream>
using std::cout;
using std::endl;
int main()
{
unsigned int bit1 = ; // 00000000..01
cout << bit1 << endl; //
unsigned int bit2 = ; // 00000000..10
cout << bit2 << endl; //
unsigned int bit3 = bit1 ^ bit2; // 00000000..11
cout << bit3 << endl;
return ;
}
7、p137课本示例。(修改、查看27号同学的及格情况)
#include<iostream>
using std::cout;
using std::endl;
int main()
{
unsigned long quiz1 = ;
// unsigned long类型在任何机器上至少有32位
quiz1 |= 1UL << ; // 1UL是unsigned long类型的整数字面值1
// 修改为原始值
quiz1 &= ~(1UL << );
// 检查学生27测试的情况到底怎么样
bool status = quiz1 & (1UL << );
cout << status << endl;
return ;
}
p139
1、sizeof的作用:返回一条表达式或者一个类型名字所占的字节数,返回值类型为size_t。
2、具体用法:sizeof(type)或者sizeof expr。
3、特点:1)满足右结合律。2)不实际求运算对象的值。(因此运算对象可以是解引用无效指针)
4、应用实例:求数组中元素的个数。
#include<iostream>
using std::cout;
int main()
{
int ia[] = {, , , , };
constexpr size_t sz = sizeof(ia)/sizeof(*ia);
int arr2[sz]; // 正确:sizeof返回一个常量表达式
cout << sz << std::endl; //
return ;
}
练习 4.25
'q':01110001
~'q':10001110
~'q'<<6:10000000
练习 4.26
练习 4.27
ull = 3 // 000...0000011
ul2 = 7 // 000...0000111
a 000...0000011
b 000...0000111
c 000...0000001
d 000...0000001
练习 4.28
#include<iostream>
using std::cout;
using std::endl;
int main()
{
cout
<< sizeof(bool) << '\n'
<< sizeof(char) << '\n'
<< sizeof(wchar_t) << '\n'
<< sizeof(char16_t) << '\n'
<< sizeof(char32_t) << '\n'
<< sizeof(short) << '\n'
<< sizeof(int) << '\n'
<< sizeof(long) << '\n'
<< sizeof(long long) << '\n'
<< sizeof(float) << '\n'
<< sizeof(double) << '\n'
<< sizeof(long double) << '\n'
<< endl;
return ;
}
/* output:
1
1
2
2
4
2
4
4
8
4
8
12
*/
练习 4.29
#include<iostream>
using std::cout;
using std::endl;
int main()
{
int x[]; int *p = x;
cout << sizeof(x)/sizeof(*x) << endl; // 10
cout << sizeof(p)/sizeof(*p) << endl; // 1
return ;
}
练习 4.30
a sizeof(x + y)
b sizeof(p->men[i])
c (sizeof a) < b
d sizeof (f())
c++第二十七天的更多相关文章
- NeHe OpenGL教程 第二十七课:影子
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- javaSE第二十七天
第二十七天 447 1:反射(理解) 447 (1)类的加载及类加载器 447 (2)反射: 448 A:定义 448 B:获取字节码对象的三种方式 449 (3) ...
- 《Linux命令行与shell脚本编程大全》 第二十七章 学习笔记
第二十七章:shell脚本编程进阶 监测系统统计数据 系统快照报告 1.运行时间 uptime命令会提供以下基本信息: 当前时间 系统运行的天数,小时数,分钟数 当前登录到系统的用户数 1分钟,5分钟 ...
- Gradle 1.12用户指南翻译——第二十七章. Ear 插件
其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...
- SQL注入之Sqli-labs系列第二十七关(过滤空格、注释符、union select)和第二十七A
开始挑战第二十七关(Trick with SELECT & UNION) 第二十七A关(Trick with SELECT & UNION) 0x1看看源代码 (1)与26关一样,这次 ...
- “全栈2019”Java多线程第二十七章:Lock获取lock/释放unlock锁
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- centos samba/squid 配置 samba配置 smbclient mount fstab自动挂载samba curl -xlocalhost:3128 www.qq.com squid配置 3128 DNSPOD 第二十七节课
centos samba/squid 配置 samba配置 smbclient mount fstab自动挂载samba curl -xlocalhost:3128 www.qq.com squ ...
- “全栈2019”Java第二十七章:流程控制语句中循环语句for
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 孤荷凌寒自学python第二十七天python的datetime模块及初识datetime.date模块
孤荷凌寒自学python第二十七天python的datetime模块及初识datetime.date模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.datetime模块 dateti ...
- 风炫安全WEB安全学习第二十七节课 XSS的防御措施
风炫安全WEB安全学习第二十七节课 XSS的防御措施 XSS防御措施 总的原则 控制好输入/输出 过滤:根据业务需求进行过滤,对email,手机号码这样的输入框进行验证. 转义:所有输出到前端的数据都 ...
随机推荐
- 电脑CPU的发展史(转)
Intel于1971年发售了自己的第一款4位微处理器,设计与ROM 4001,RAM 4002和移位寄存器4003配合工作.其中4004自身负责运算,其它部分则是使CPU正常工作的重要组成.大部分40 ...
- C语言简介(转自菜鸟教程)
C 简介 C 语言是一种通用的高级语言,最初是由丹尼斯·里奇在贝尔实验室为开发 UNIX 操作系统而设计的.C 语言最开始是于 1972 年在 DEC PDP-11 计算机上被首次实现. 在 1978 ...
- lua知识点整理
1. lua全局环境和局部环境 local cf = loadstring(" local i=0 i=i+1 print(i) ") --从后面两个输出我们可以看出,生成的函数的 ...
- React的setState如何实现同步处理数据
React里面的使用setState来进行状态的更新,为了性能的提升,此时的过程是异步操作的,那我们如果在一个进程里面想同步操作改变了状态的值怎么办呢,这里需要使用回调函数了: this.setSta ...
- 英语——'s和s'和s的区别
举个例子吧,student's 是表示学生的,名词单数形式的所有格students' 是表示学生们的,名词复数形式的所有格students 是表示学生们,名词的复数形式
- 【BZOJ1568】[JSOI2008]Blue Mary开公司 线段树
[BZOJ1568][JSOI2008]Blue Mary开公司 Description Input 第一行 :一个整数N ,表示方案和询问的总数. 接下来N行,每行开头一个单词“Query”或“P ...
- 【BZOJ4556】[Tjoi2016&Heoi2016]字符串 后缀数组+二分+主席树+RMQ
[BZOJ4556][Tjoi2016&Heoi2016]字符串 Description 佳媛姐姐过生日的时候,她的小伙伴从某东上买了一个生日礼物.生日礼物放在一个神奇的箱子中.箱子外边写了一 ...
- (java部署篇)eclipse ~ 自动补全词的各种控制(转)
#这种方法只适用于Eclipse Classic版本(这个版本带有插件的源码) 在使用Eclispe的过程,感觉自动补全做的不好,没有VS的强大.下面说两个增强自动补全的方法: 1.增加Eclipse ...
- js 中 0 和 null 、"" Boolean 值关系
在做字符串非空判断时,无意发现一个问题,记录下以便以后回顾. 问题描述:非空判断,只是校验传值的内容是否为"".null .undefined.当变量 赋值的字符串内容为 0,此时 ...
- handle exceptions, opening and closing database connections
https://www.tutorialspoint.com/spring/spring_jdbc_framework.htm Spring - JDBC Framework Overview Whi ...