<深入理解计算机系统(第二版)>CSAPP 第三章 家庭作业 这一章介绍了AT&T的汇编指令 比较重要 本人完成了<深入理解计算机系统(第二版)>(以下简称CSAPP)第三章的家庭作业,并与网上的一些答案进行了对比修正. 感谢博主summerhust的整理,以下贴出AT&T常用汇编指令 AT&T常用汇编指令 数据传送指令 指令 效果 描述 movl S,D D <-- S 传双字 movw S,D D <-- S 传字 movb S,D D &l…
ADT Rational: #定义有理数的抽象数据类型 Rational(self, int num, int den) #构造有理数num/den +(self, Rational r2) #求出本对象加r2的结果 -(self, Rational r2) #求出本对象减r2的结果 *(self, Rational r2) #求出本对象乘以r2的结果 /(self, Rational r2) #求出本对象除以r2的结果 num(self) #取出本对象的分子 den(self) #取出本对象的…
ADT Date: #定义日期对象的抽象数据类型 Date(self, int year, int month, int day) #构造表示year/month/day的对象 difference(self, Date d2) #求出self和d2的日期差 plus(self, int n) #计算出日期第self之后n天的日期 num_date(self, int year, int n) #计算year年第n天的日期 adjust(self, int n) #将日期d调整n天(n为带符号整…
题目:定义一个表示时间的类Timea)Time(hours,minutes,seconds)创建一个时间对象:b)t.hours(),t.minutes(),t.seconds()分别返回时间对象t的小时,分钟和秒值c)为Time对象定义加法和减法操作(用运算符+和-)d)定义时间对象的等于和小于关系对象(用运算符==和<) #!/usr/bin/env python # -*- coding:utf-8 -*- """ 定义一个表示时间的类Time a)Time(ho…
脚本执行顺序     js代码是按照它们在html中出现的顺序一行一行被解释的.这表明把函数定义和变量声明放到<head>中会很好.这保证了函数的代码和事件相关的处理程序不会立即执行. 大写小敏感 js是大小写敏感的语言.这意味着result,Result,RESULT是不同的变量.所有的js关键字都是小写的,当你写if是一定不要写成 If或IF.因为js使用camel-back的命名方式,许多方法或属性都是大小写混写的.比如Document对象的lastModified中M必须大写,否 则提…
1.实现isOdd()函数,参数为整数,如果整数是奇数,返回True,否则返回False def isOdd(num):    if num % 2 == 0:        return True    else:        return Falsen = eval(input())print(isOdd(n))  2.实现isNum()函数,参数为一个字符串,如果这个字符串输入整数.浮点数或复数的表示,则返回Ture,否则返回False def isNum(word):    try:…
1..编写一个C++程序,它显示您的姓名和地址. #include<iostream> using namespace std; int main() { string name,address; cout << "Please enter your name and address:"; cin >> name >> address; cout << "Your name is "<< nam…
javascript曾经带给人许多误解,例如如果你不了解它的历史,那么你可能困惑它和java有什么关系,其实它们一点关系都没有.网景公司1995年在Navigator 2.0 中引入这门语言时它叫LiveScript,当时主要用来验证表单.后来被重命名为javascript,因为想借助java的魅力成为构建web程序的主流语言.不幸的是,因为它里面含有java,人们常常认为它是java的精简版.事实上js仅仅模糊的像java,它在语法上和C.Perl.Python也相似. 尽管它的名字引起很大的…
每一个变量都有一个确定的类型表明它存储什么样的数据.js基本的数据类型有strings字符串.numbers数字.Booleans布尔类型.字符串是使用双引号或单引号包含的一串字符:数字包括整数或浮点数.布尔类型只有两个值:true或false.这三种类型的例子: var stringData = "JavaScript has strings\n It sure does"; var numericData = 3.14; var booleanData = true; js也支持两…
通常,向文档中增加script脚本使用<script>元素,在HTML中增加脚本的方式有4中: (1)放到<script></script>块中: (2)<script src="demo.js"></script>,通过src属性指定js文件位置: (3)用作javascript事件处理属性,如<input type="button" onclick="js代码"  />…
3.1分布式文件 HDFS默认一个块的大小是64MB,与普通文件不同的是如果一个文件小于数据块的大小,它并不占用整个数据块的存储空间. 主节点又叫名称节点:另一个叫从节点又叫数据节点.名称节点负责文件和目录的创建.删除和重命名,同时管理数据节点和文件块的映射关系.数据节点负责数据存储和读取. 3.2HDFS的相关概念 MapReduce中的map一次只处理一个块中的数据.HDFS抽象块的概念可以带来一下好处: 支持大规模文件存储 简化系统 适合数据备份 名称节点在启动过程中处于安全模式,只对外提…
变量存储数据.每个变量都有一个名字,叫做标识符.在js中声明变量使用var关键字,var为新的数据分配存储空间,或者指示一直标识符正在使用.声明变量非常简单: var x; 这个语句告诉解释器一个新的变量将要使用.声明变量时可以赋初始值,如: var x = 2; 另外可以使用var声明多个变量,变量之间加逗号,如: var x, y = 2, z; 最好不要使用没有声明的变量,尽管有时不报错.如果把没有声明的变量放在操作符右边的话就会引起一个错误.    js声明变量只使用var,因为它是弱类…
在这里,我们介绍一些将要使用的编程语言术语.表2-1提供了精确定义的概念. Table 2-1: 编程语言的基本术语 名字 定义 例子 Token令牌 最小的不可分割的词汇的语言单位.一个连续的字符序列,如果用空格隔开 其含义会改变. 所有的标识符和关键字都是令牌,像字面值3.14,“这是一个字符串”. Literal 字面值 在脚本中的值. 3.14"This is a string" [2, 4, 6] Identifier 标识符 一个变量,对象,功能,或标签的名称. XmyVa…
从20世纪70年代末到80年代末,Digital Equipment的VAX计算机是一种非常流行的机型.它没有布尔运算AND和OR指令,只有bis(位设置)和bic(位清除)这两种指令.两种指令的输入都是一个数据字x和一个掩码字m.它们生成一个结果z,z是由根据掩码m的位来修改x的位得到的.使用bis指令,这种修改就是在m为1的每个位置上,将z对应的位设置为1.使用bic指令,这种修改就是在m为1的每个位置,将z对应的位设置为0. 只使用这两个函数实现C语言的按位|和^运算. int bis(i…
对于下面的值,写出变量x的C语言表达式.代码应该对任何字长w≥8都能工作.我们给出当x=0x87654321以及w=32时表达式的结果,仅供参考. A.x的最低有效字节,其他位均为0.[0x00000021]. B.除了x的最低有效字节外,其他位都取补,最低有效字节保持不变.[0x789ABC21]. C.x的最低有效字节设置成全1,其他字节都保持不变.[0x876543FF]. 解答: A. x & 0xFF B. ~(x ^ 0xFF)或者x ^ (~0xFF) C. x | 0xFF…
第一章 快速改造:基础知识 01:整除.乘方 (Python3.0之前 如2.7版本) >>> 1/2 ==>0 1/2整除,普通除法: 解决办法1: 1.0/2.0  ==>0.5 解决办法2:from _future_ import division 1/2  ==>0.5 // 表示整除 >>>1//2 ==>0 浮点数//浮点数,结果依然是整除结果 >>>1.0//2.0 ==>0.0 实际操作截图: ** 表示乘…
T2Uw(w)=x, x≥0时 T2Uw(w)=x+2w, x<0时 利用上面的公式,重新计算2.19的问题.…
在2.17的基础上完成下表: x 十六进制 T2U(x) -8 0x8 -3 0xD -2 0xE -1 0xF 0 0x0 5 0x5…
将32位补码表示的数转换为10进制数. 32位补码 十进制 0x1b8 0x14 0xFFFFFE58 -424 0xFFFFFE74 -396 0x44 0xFFFFFEC8 -312 0x10 0xC 0xFFFFFEEC -276 0x20…
假设w=4,我们能给每个可能的十六进制数字赋予一个数值,假设用一个无符号或者补码表示.完成下表: x 无符号(B2U(x)) 补码(B2T(x)) 十六进制 二进制 0xE 1110 14 -2 0x0 0x5 0x8 -8 0xD -3 0xF -1…
填写下表,说明不同移位运算对单字节数的影响. x x<<3 x>>2(逻辑) x>>2(算术) 十六进制 二进制 二进制 十六进制 二进制 十六进制 二进制 十六进制 0xC3 1100 0011 0001 1000 0x18 0011 0000 0x30 1111 0000 0xF0 0x75 0111 0101 1010 1000 0xA8 0001 1101 0x1D 0001 1101 0x1D 0x87 1000 0111 0011 1000 0x38 001…
只使用位级运算和逻辑运算,编写一个C表达式,它等价于x==y.换句话说,当x和y相等时它将返回1,否则就返回0. !(x ^ y)…
假设x和y的字节值分别为0x66和0x39.填写下表,指明各个C表达式的字节值. 0x66 = 0110 0110(B) 0x39 = 0011 1001(B) 表达式 值 x & y 0x20 x | y 0x7F ~x | ~y 0xDF x & !y 0x00 x && y 0x01 x || y 0x01 !x || !y 0x00 x && ~y 0x01…
在2.10中的inplace_swap函数的基础上,你决定写一段代码,实现将一个数组中的元素两端依次对调,你写出下面这个函数: void reverse_array(int a[], int cnt) { int first, last; , last = cnt - ; first <= last; first ++, last --) { inplace_swap(&a[first], &a[last]); } } 当对一个数组包含1.2.3.4时,得到预期的结果4.3.2.1.…
对于任一位向量a,有a ^ a = 0.考虑下面的程序: void inplace_swap(int *x, int *y) { *y = *x ^ *y; *x = *x ^ *y; *y = *x ^ *y; } 假设x和y指向的位置分别是a和b.完成下表: 步骤 *x *y 初始 a b 第一步 a a^b 第二步 a^(a^b) a^b 第三步 a^(a^b) a^(a^b)^(a^b) 由于异或运算满足交换率和结合率,且a ^ 0 = 0, a ^   = ~a.所以有 步骤 *x *…
基于三元色R(红)G(绿)B(蓝)关闭(0)和打开(1),能够创建8种不同的颜色,如下: R G B 颜色 R G B 颜色 0 0 0 黑色 1 0 0 红色 0 0 1 蓝色 1 0 1 红紫色 0 1 0 绿色 1 1 0 黄色 0 1 1 蓝绿色 1 1 1 白色 这些颜色的每一种都能通过用一个长度为3的位向量一表示,同时可以对它们进行布尔运算. A.一种颜色的补是通过关闭打开的颜色,同时打开关闭的颜色形成的.那么上面8种颜色的补是什么颜色? 利用非运算求解: 颜色 补色 黑色 白色 红…
给出位微量的布尔去处的求值结果. 运算 结果 a 0110 1001 b 0101 0101     ~a 1001 0110 ~b 1010 1010     a&b 0100 0001 a|b 0111 1101 a^b 0011 1100…
下面的函数将输出什么结果? const char *s = "abcdef"; show_bytes((byte_pointer) s, strlen(s)); 其中字母'a'~'z'的ASCII码为0x61~0x7A. show_bytes()函数定义如下: #include <stdio.h> typedef unsigned char *byte_pointer; void show_bytes(byte_pointer p, int n) { int i; ; i…
使用打印字节的方式可以知道十进制数12345的十六进制为0x00003039,十进制浮点数12345.0的十六进制为0x4640E400. 转换为二进制为 /* 0 0 0 0 3 0 3 9 ************* 4 6 4 0 E 4 0 0 0000000000 */ 移动后有13位匹配. 已知十进制数3510593的十六进制为0x00359141,十进制浮点数3510593.0的十六进制为0x4A564504. A.写出上面两个数对应的二进制表示. B.移动两个二进制串的相对位置,…
分别写出十六进制数0x87654321在大端法机器和小端法机器上第1个.前2个.前3个字节. A.小端法:21    大端法:87 B.小端法:21 43      大端法:87 65 C.小端法:21 43 65 大端法:87 65 43…