CSAPP
好吧我随便改的
公司就是这样的组织,聚集着各有所长的成员,去挑战难以凭一己之力实现的巨大目标。
展开
-
浮点数运算
浮点数的运算有三个步骤,这里从http://rangercyh.blog.51cto.com/1444712/1313162转载这三个步骤1、对阶(就是使两个浮点数的两个指数部分相同,规定小数向大数对齐,因为如果是大数向小数对齐,那么就要左移大数的尾数部分,就有可能会丢失大数的最高有效位;小数向大数对齐是右移小数的尾数部分,而丢失小数的那点精度对结果来说是无关紧要的)原创 2024-05-10 11:26:10 · 162 阅读 · 0 评论 -
浮点数和整数之间的转换
当一个整数int i = 12345被强制转换为一个FLOAT型变量float f = (float)i;假设sizeof(int)=32,float为单精度,sizeof(float)=32那么i = 12345(十进制)=00000000000000000011000000111001对于十进制12345,可以表示成1.2345 乘以10的4次方同理,对于二进制层面11原创 2014-02-05 12:40:47 · 4184 阅读 · 0 评论 -
LEA指令
LEA指令(X86汇编)对应leal指令(AT&T汇编)当我们把一个变量的地址存放到寄存器,例如%eax存放了变量x的地址%eax+4存放了变量y的地址当进行函数调用,需要传递这两个变量的地址时,可以这样写leal %edx (%eax)push %edxcall fun方法中push %ebxmov %esp %ebxmov (%ebx) %eax原创 2014-02-27 23:44:54 · 2834 阅读 · 0 评论 -
浮点数间的运算
十进制数1.5 + 18.75其中1.5(10) = 1.1(2)阶码E=0 E' = 0 + 127 =127 = 01111111(2)M=1.1尾数f=0.11.5(10) = 0 01111111 10000000000000000000000(2)然后18.75(10) = 10010.11(2) = 1.00101原创 2014-02-18 21:50:38 · 591 阅读 · 0 评论 -
对带缓存区的标准IO的理解
最近在看CSAPP上的系统级IO这一张,在看了RIO以及网上一些大神的博客之后,稍微有些心得,在此记录下来。首先,系统本上是提供了内核级别的IO操作,这些IO操作虽然普遍被归为无缓冲的IO接口,但是这个缓冲是指在用户层是否有缓冲,内核提供的IO接口函数是在内核中有操作缓冲的。例如,内核中提供了100个字节的缓存,但是如果每次我们调用IO的write只写入10个字节,那么要等10次循环将内核原创 2017-09-30 17:21:29 · 710 阅读 · 0 评论