
读书笔记
xclhs
谦虚呀!谦虚啦~不足足足足......
展开
-
深入理解计算机系统第二章家庭作业2.6.2~2.6.6
**2.62编写一个函数int_shifts_are_logical(),在对int类型的数使用算术右移的机器上运行时,这个函数生成1,而其他情况下生成0。你的代码应该可以运行在任何字长的机器上。在几种机器上测试你的代码。答:int int_shifts_are_logical(void){ //求bit位 int i=sizeof(int)-1; int res=-1>>i; return res!=1;}答:int s...原创 2021-10-06 22:34:30 · 346 阅读 · 0 评论 -
Database System Implementation Exercise chapter2
Exercise 2.2.1: The Megatron 777 disk has the following characteristics:1. There are ten surfaces, with 10,000 tracks each.2. Tracks hold an average of 1000 sectors of 512 bytes each.3. 20% of each track is used for gaps.4. The disk rotates at 10原创 2021-10-06 17:58:40 · 562 阅读 · 0 评论 -
Database System Implementation Exercise 2.1.1/2
Exercise 2.1.1: Suppose that in 1999 the typical computer has a processor that runs at 500 megahertz, has a disk of 10 gigabytes, and a main memory of 100 megabytes. Assume that Moore's law (these factors double every 18 months) continues to hold into the原创 2021-10-06 16:02:23 · 210 阅读 · 0 评论 -
深入理解计算机原理第二章家庭作业2.5.5~2.6.1
*2.55在你能够访问的不同机器上,使用show_bytes (文件show-bytes.c)编译并运行示例代码。 确定这些机器使用的字节顺序。#include <stdio.h>#include <string.h>typedef unsigned char * byte_pointer;void show_byte(byte_pointer x, int len);void show_byte(byte_pointer x, int len) {...原创 2021-10-05 23:13:45 · 507 阅读 · 0 评论 -
Database System Implementation(数据库系统实现算法) chapter 1
第一章The Megatron 2000 Database 第一版本 例子:开始操作:SQL 查询: 执行操作 ------------------------------------------------------------------for(each tuple s in Students) for(each tuple d in Dept...原创 2021-10-04 22:35:59 · 600 阅读 · 0 评论 -
python在excel中的应用
因为工作中需要用到,故备份一份随机代码,没有解释,仅供自己参考#!/user/bin/env python# encoding: utf-8import sysimport timeimport urllibimport urllib3import requestsimport xlrdimport xlwtfrom xlutils.copy import copydef readExcel(): wb_add=xlrd.open_workbook_xls(r'fil原创 2021-09-10 20:29:15 · 436 阅读 · 0 评论 -
浮点数的表示及相关知识详解
二进制小数: 点左边的位的权是2的正幂,点右边的位的权是2的负幂。刚好小于1的数,如0.111111将用简单的表达法1.0-ε来表示这样的数值。IEEE浮点数:定点表示法不能很有效地表示非常大的数字符号S决定这个数是负数(S=l)还是正数(S=0),对于数值0的符号位解释作为特殊情况处理。 尾数(significand) M是一个二进制小数,它的范围是1 ~ 2-ε,或者是0〜1-ε 阶码E 的作用是对浮点数加权,这个权重是2的E次幂(可能是负数)。特殊浮点数:当.原创 2021-06-22 21:54:13 · 3122 阅读 · 1 评论 -
整数运算:乘除详解
整数运算无符号乘法:C语言中的无符号乘法被定义为产生w位的值补码乘法:,C语言中的有符号乘法是通过将2w位的乘积截断为w位的方式实现的。我们认为对于无符号和补码乘法来说,乘法运算的位级表示都是一样的,机器可以用一种乘法指令来进行有符号和无符号整数的乘法。XDR库中的安全漏洞包含安全漏洞的代码与下面所示类似:/** Illustration of code vulnerability similar to that found in* Sun's XDR l.原创 2021-06-21 21:16:14 · 1261 阅读 · 0 评论 -
C++ Primer 2.3.3 节练习和答案
练习2.25:说明下列变量的类型和值。(a) int* ip,i, &r=i;(b)int i,*ip=0;(c)int* ip, ip2;答案:(a)ip为int型指针,i为int型变量,r为int型引用(b)i为int型变量,ip为int型空指针(c)ip为int型指针,ip2位int型变量...原创 2021-06-20 21:17:31 · 194 阅读 · 0 评论 -
C++Primer2.3.2 练习和答案
练习2.18:编写代码分别更改指针的值以及指针所指对象的值。int i=23;int *p=nullptr;p=&i;*p=13;练习2.19:说明指针和引用的主要区别。答案:指针是保存所指向对象的地址其本身是一个对象,引用是对象的别名其本身不是对象。练习2.20:请叙述下面这段代码的作用。int i=42;int *p1 = &i;*p1 = *p1 * *p1;答案:将指针pl指向i,并将其指向对象值改为42*42;练习2....原创 2021-06-20 21:14:30 · 315 阅读 · 0 评论 -
C++Primer2.3.1 练习和答案
练习2.15:、下 面的哪个定义是不合法的?为什么?(a) int ival = 1.01 ;(b) int &rval1 = 1.01;(c) int &rval2 = rval;(d) int &rval3;答案:(a)合法(b)合法(c)不合法,引用不是对象(c)不合法,引用必须初始化练习2.16:考查下面的所有赋值然后回答:哪些赋值是不合法的?为什么?哪些赋值是合法的?它们执行了什么样的操作?int i =0,&am...原创 2021-06-20 21:00:41 · 353 阅读 · 3 评论 -
复合类型:引用与指针
C++11中新增了一种引用:所谓的“右值引用”,当我们使用术语“引用”时,指的其实是“左值引用”。引用: 为对象起了另外一个 名字,引用类型引用另外一种类型,通过将声明符写成&d的形式来定义引用类型,其中d是声明的变量名。int ival = 1024;int &refVal = ival;// refVal 指向ival (是ival的另一个名字)一般在初始化变量时,初始值会被拷贝到新建的对象中。程序把引用和它的初始值绑定在一起,一旦初始化完成,引用将和它的初始值对原创 2021-06-20 20:51:52 · 105 阅读 · 0 评论 -
整数运算(加减法)详解
2.7 整数运算——加减法无符号加法:考虑两个非负整数x和y,满足0≤x, y≤2w-1。每个数都能表示为w位无符号数字。无符号运算可以被视为一种模运算形式。无符号加法等价于计算和模上2w, 通过简单的丢弃x+y的w+1位表示的最高位,来计算这个数值。一个算术运算溢出,是指完整的整数结果不能放到数据类型的字长限制中去。当执行C程序时,不会将溢出作为错误而发信号。补码加法:举例:补码的非:位级补码非的第一种方法是对每一位求补,再对结果加1。...原创 2021-06-20 17:42:55 · 2888 阅读 · 0 评论 -
有符号数与无符号数详解
有符号数与无符号数符号转换:C语言允许在各种不同的数字数据类型之间做强制类型转换,强制类型转换的结果保持位值不变,只是改变了解释这些位的方式,C语言支持所有整型数据类型的有符号和无符号运算,大多数数字都默认为是有符号的,要创建一个无符号常量,必须加上后缀字符U。short int y = -12345;unsigned short uv = (unsigned short) v;printf("v = %d, uv = %u\n", v, uv);当执行一个运算时,如果它的一...原创 2021-06-19 21:17:44 · 922 阅读 · 5 评论 -
整型概述:有符号数与无符号数
整数C语言标准定义了每种数据类型必须能够表示的最小的取值范围,C和C++都支持有符号(默认)和无符号数。Java只支持有符号数。w位所能表示的值的范围。最小值是用位向量[00・・・0]表示,也就是整数值 0,而最大值是用位向量[11…1]表示。无符号数的二进制表示有一个很重要的属性,就是每个介于0〜2w-1之间的数都有唯一一 个w位的值编码。补码编码:符号位被设置为1时,表示值为负,而当设置为0时,值为非负。同无符号表示一样,在可表示的取值范围内的每个数字 都...原创 2021-06-18 21:22:04 · 1153 阅读 · 0 评论 -
C++ Primer 2.2.4 练习答案
j的值为100;输出:45原创 2021-06-17 21:58:10 · 180 阅读 · 0 评论 -
C++ Primer 2.2.3 练习答案
(a)double是保留字(b)正确(c)保留字(d)必须以字母或下画线开头(e)正确原创 2021-06-17 21:57:12 · 205 阅读 · 0 评论 -
C++ Primer 2.2.2 练习答案
(a)定义(b)声明并定义(c)声明不定义原创 2021-06-17 21:56:27 · 138 阅读 · 0 评论 -
C++ Primer 2.2.1 练习答案
(a)先声明后初始化int input_value;std::cin>>input_value;(b)存在信息丢失的风险 ,int i(3.14);(c)wage没有声明,double salary=9999.99;double wage=salary;(d)正确global_int初始值为0,local_int和local_str未被初始化。...原创 2021-06-17 21:55:39 · 185 阅读 · 0 评论 -
C++Primer之变量概述
变量变量提供一个具名的、供程序操作的存储空间,C++中的变量都有其数据类型,数据类型决定着变量所占内存空间的大小和布局方式、该空间能存储的值的范围,对C++程序员来说,“变量(variable)” 和“对象(object)” 一般可以互换使用。定义变量:类型说明符+一个或多个变量名组成的列表(变量名以逗号分隔,最后以分号结束。)int sum = 0 , value , // sum, va1ue ,units_sold 都是 intunits_sold = 0 ; //sum ,un..原创 2021-06-17 20:54:22 · 123 阅读 · 1 评论 -
C语言的各类运算概述
C语言的各类运算概述C语言的一个很有用的特性就是支持按位布尔运算。位级运算:对char数据类型表达式求值的例子:逻辑运算:逻辑运算符||、&&和!,分别对应于命题逻辑中的OR、AND和NOT 运算。逻辑运算认为所有非零的参数都表示TRUE,而参数0表示FALSE,它们返回1或者0,分别表示结果为TRUE或者 为FALSE。如果对第一个参数求值就能确定表达式的结果,那么逻辑运算符就不会对第二个参数求值。移位运算:x<<k,x向左移动左位,丢弃..原创 2021-06-17 19:41:54 · 2505 阅读 · 3 评论 -
C++ primer 2.1.3练习及答案
(a)char,wchar_t,字符串,wchar_t的字符串(b)int,unsigned int,long,unsigned long ,八进制,十六进制(c)double,float,long double(d)int,unsigned int, double,float有区别,第一种赋值为十进制数赋值,第二种为八进制数且09为书写错误。(a)字符串”Who goes with Fergus?\n”(b)单精度浮点数,类型为float表示31.4(c)单精...原创 2021-06-16 21:32:48 · 281 阅读 · 0 评论 -
C++ Primer 2.1.2练习及答案
结果:带符号数会自动地转换成无符号数32429496726432-3200估计正确。原创 2021-06-16 20:44:09 · 156 阅读 · 0 评论 -
C++ Primer 2.1.1练习题及答案
主要区别在于其能表示范围大小,一般long long≥long≥int≥short无符号表示的值始终大于等于0,而带符号表示的值中有负数。float和double的区别在于精度和数值范围,一般情况下double优于float利率由于带小数,故选择double,本金一般值比较大选择整型int,付款选择int。...原创 2021-06-16 20:42:41 · 164 阅读 · 0 评论 -
C++ Primer 字面值
字面值常量:整型字面值:数据类型由值和符号决定,十进制字面值是带符号数,八进制和十六进制字面值既可能是带符号的也可能是无符号的。十进字面值的类型是 int, 1ong ,long 1ong 中尺寸是这种类型要容纳下当前的值的最小数据类型,同理,八进制和十六进制 面值的类型是能容纳其数值的 int unsigned ,int long ,unsigned long ,long 1ong ,unsigned long long中的尺寸最小者,如果最大的数据类型都放不下,将产生错误。 类型 short 没有字原创 2021-06-16 20:41:23 · 151 阅读 · 0 评论 -
C++ Primer 基本类型概述
类型类型检查:编译时期字节:可寻址的最小内存块,能容纳机器基本字符集中的字符字:,存储的基本单元称为"字( word )" ,它通常由几个字节组成基本内置类型: 类型选择:数值不可能为负时,选用无符号类型 使用 int 执行整数运算 在实际应用中,如果数值超过了int 的表示范围,选用 long long 在算术表达式中不要使用 char或bool ,只有在存放字符或布尔值时才使用它,char 在一些机器上是有符号的,而在另一些机器上又是无符号 浮点数运算选用 doubl.原创 2021-06-16 20:40:12 · 127 阅读 · 0 评论 -
基本数据类型:字符串、布尔值概述
基本数据类型字符串:C语言中字符串被编码为一个以null (其值为0)字符结尾的字符数组。每个字符都由某个标准编码来表示,最常见的是ASCII字符码。十进制数字x 的ASCII码正好是0x3x,而终止字节的十六进制表示为0x00,不同的机器类型使用不同的且不兼容的指令和编码方式。即使是完 全一样的进程运行在不同的操作系统上也会有不同的编码规则,因此二进制代码是不兼容的。二进制代码很少能在不同机器和操作系统组合之间移植文本数据比二进制数据具有更强的平台独立性。man ascii(查看ASCII表)原创 2021-06-16 17:35:14 · 748 阅读 · 0 评论 -
计算机表示之字的相关概述
字:字长决定虚拟地址空间大小(0~2w-1),当今大多数计算机字长为64位,根据字长不同的机器,不同数据类型的字节数不同。因此在编译的过程中要考虑可移植性,针对不同位系统。 C声明 32位机器 64位机器 char 1 1 short int 2 2 int 4 4原创 2021-06-12 20:49:09 · 210 阅读 · 0 评论 -
C++Primer练习1.6答案
#include <iostream>#include "Sales_item.h"using namespace std;int main(){ Sales_item item1,item2; cin>>item1>>item2; if(item1.isbn()==item2.isbn()){ cout<<item1+item2<<endl; return 0; }e...原创 2021-06-04 17:45:39 · 142 阅读 · 0 评论 -
剑指offer练习day06
题目:转载 2021-06-04 17:03:09 · 86 阅读 · 0 评论 -
计算机概念之抽象
抽象定义:为一组函数规定一个简单的应用 程序接口(API)就是一个很好的编程习惯,程序员无需了解它内部的工作便可以使用这些代码。案例:在处理器里,指令集结构提供了对实际处理器硬件的抽象。...原创 2021-06-04 11:36:22 · 2027 阅读 · 0 评论 -
剑指offer练习day05
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。答案:根据题目条件可以作图进行分析解答原创 2021-06-03 20:57:35 · 87 阅读 · 0 评论 -
并发与并行
并发与并行并行:一组程序按独立异步的速度执行,无论从微观还是宏观,程序都是一起执行的。并发:在同一个时间段内,两个或多个程序执行,有时间上的重叠(宏观上是同时,微观上仍是顺序执行)线程级并发:单处理器系统:实际的计算是由一个处理器来完成的处理器必须在多个任务间切换。多处理器:将多个CPU集成到一个集成电路芯片上。多线程:允许一个CPU执行多个控制流的技术,多线程的处理器可以在单个周期的基础上决定要执行哪一个线程指令级并行:现代处理器可以同时执行多条指令的属...原创 2021-06-03 20:43:42 · 119 阅读 · 0 评论 -
网络通信概述
网络通信网络可视为一个I/O设备,当系统从主存将一串字节复制到网络适配器时,数据流经过网络到达另一台机器,系统可以读取从其他机器发送来的数据,并把数据复制到自己的主存。本地主机上的telnet客户端连接远程主机上的telnet服务器。在我们登录到 远程主机并运行外壳后,远端的外壳就在等待接收输入命令。...原创 2021-06-03 17:05:05 · 126 阅读 · 0 评论 -
C++ primer 1.4.4答案
1.4.4节练习int main(){ int currVal=0,val=0; if(cin>>currVal){ int cnt = 1; while(cin>>val){ if(val==currVal){ cnt++; }else{ cout<<currVal<<" occurs "&l...原创 2021-06-02 21:59:36 · 187 阅读 · 0 评论 -
剑指offer练习day04
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。示例1输入:[1,2,3,4,5,6,7],[3,2,4,1,6,5,7]复制返回值:{1,2,5,3,4,6,7}...原创 2021-06-02 20:48:45 · 101 阅读 · 0 评论 -
虚拟存储器概述
虚拟存储器:地址空间最上面的区域是为操作系统中的代码和数据保留、底部区域存放用户进程定义的代码和数据。图中的地址是从下往上增大的。程序代码:对于进程来说,代码是从同一固定地址开始 数据:全局变量相对应的数据位置,(代码和数据是直接按照可执行目标文件的内容初始化的,代码和数据区是在进程一开始运行时就被规定大小)堆:当调用如malloc和free这样的C标准库函数时,堆可以在运行时 动态增大和减小容量 共享库:存放像C标准库和数学库这样共享库的代码和数据的区域 栈:用户虚拟地址空间顶部的是用户栈原创 2021-06-02 19:01:38 · 183 阅读 · 1 评论 -
进程与线程概述
进程:运行的程序的一种抽象,在一个系统上可以同时运行多个进程。并发运行:一个进程的指令和另一个进程的指令 是交错执行的,通过处理器在进程间切换来实现的(上下文切换,保存当前进程的上下文、恢复新进程的上下文,然后将控制权传递到新进程)线程:一个进程实际上可以由多个线程组成,每个线程都运行在进程的上下文中,并共享代码和全局变量...原创 2021-06-02 17:09:31 · 75 阅读 · 0 评论 -
剑指offer练习day03
题目:原创 2021-06-01 21:54:21 · 86 阅读 · 0 评论 -
硬件管理机制
硬件管理机制操作系统是应用程序和硬件之间插入的一层软件,所有应用程序对硬件的操作尝试都必须通过操作系统。作用:防止硬件被失控的应用程序滥用 简单一致的机制来控制复杂而又而不同的低级硬件设备...原创 2021-06-01 21:15:26 · 285 阅读 · 0 评论