深入理解计算机系统——第二章小结(2)

1. 二进制补码

  B2U(X) =                 x[i]*2^i     (i=0;i<=w-1)
  B2T(X) = (-1) * x[w-1] + x[i]*2^i     (i=0;i<=w-2)

U表示无符号数,T表示又符号数,而大部分计算机都采用二进制补码( Two's - complement )来表示符号整数。

简单的说,二进制补码相比无符号二进制根本的区别在于,最高位作为负权( negative weight )使用。

由上引出很多细节,其中最值得了解的就是,如果强制类型将他们互相转换呢

2. 映射转换 (P: unsigned i = (unsigned) int k )
我们得到两种表达方式在 0~2^(w-1)-1 内是相同的。
而其他时候,将会造成数值的突变。

 T2U()
{
 if (T>=0) U = T;
 else 
 U = T + 2^w
}
 U2T()
{
 if (U<2^(w-1)) T = U;
 else 
 T = U - 2^w
}

3. GCC编译器在处理一个运算时,如果出现了一个符号而另一个无符号,将会默认隐式转换为无符号处理

4. 关于一个变量 i 的常量定义

int32 i;
i = -2147483648  // 2147483648 == 2 to the 31st
/*这样是错误的,因为编译器处理-X时是首先读取X,再对其取反,
   但是2147483648太大了,不能表示为32位符号数的补码*/

i= -2147483647-1
/* 如果你实在想这样的话.... */

发表在 C, 系统 | 标签为 | 留下评论

简单C程序-匹配关键词

下午小格问了个程序,说是不能在长度不一定的时候正确匹配。

原版的代码改的很纠结,最后删了一部分重新写了。
其实小程序还是很考验功底的,粗略的写了一个,也许还有其他没考虑的地方。:)

#include 
#include 
#include 
#define N 5

void g(char string[],int n,char key[][N],int m[]);

int main(void)
{
     char key[N][N];
      int i,j;
       char string[81];
        int m[N]={};
         
         printf("请输入5回关键字,字母个数少于5个:\n");
          for (i=0;i

继续阅读

发表在 C, 编程 | 标签为 | 留下评论

深入理解计算机系统——第二章小结(1)

1. 溢出

(3.14 + 1e20) - 1e20 = 0
 3.14 + (1e20 - 1e20) = 3.14

2.编码方式->属性
最小寻址存储单位: 字节(Byte) = 8 bits
计算机将存储器视为巨大字节数组:虚拟存储器(Virtual memory)
字(word) 指明整数和指针数据标称大小(nomial size)

3.大小端

unsigned int test = 123456;
test == 0x00003039;
&test == 0x100;
地址 0x100 0x101 0x102 0x103   大端
     00     00     30   39
地址 0x100 0x101 0x102 0x103   小端
     39      30    00   00

发表在 未分类, 系统 | 标签为 | 留下评论

Adobe Flash.google music

安装好Adoble Flash,终于可以运行google music。
不过发现文字显示变成了框 — —。

修改/etc/fonts/conf.d/49-sansserif.conf






    
        sans-serif
    
    
        serif
    
    
        monospace
    
    
        sans-serif
    


将上面的line18的内容改为:

sans

保存一下,刷新一下,问题就解决了。

ZZ From

Ubuntu Firefox -> google music.

发表在 未分类 | 留下评论

[zz]一招解决 Chrome 官方扩展无法下载的问题

果真一招解决

Ubuntu: #sudo gedit /etc/hosts

猛击这里.

发表在 Linux, 系统 | 标签为 | 留下评论

Chrome extensions ; AddThis for Word press

测试ubuntu下使用Chrome发布日志,虽然只有快速发布功能囧。

发表在 唠叨 | 标签为 | 留下评论

深入理解计算机系统——第一章小结

Computer Systems :A Programmer’s Perspective

电力出版社:深入理解计算机系统

晚上很悲情的把Grub折腾崩了,修复完成下决心更新ubuntu。

准备工作前期翻了翻这本书,其实前几章去年就看完,一直没写总结和思考,

如今又要再复习一边,也不知道怎么解释。

CS:APP 起源于卡内基梅隆(CMU)大学计算机系统导论(Introduction to Computer System)。

而CMU的CS在US News排名中第一。

15-213/18-243 Introduction to Computer Systems

 

继续阅读

发表在 系统 | 标签为 | 留下评论

51

五一。

在听周董新歌,依稀又想起了很多事情。

小格说要常常上来谈谈生活,聊聊故事,不如就来写一写吧。

二食堂二楼关门这两天,吃饭也成了问题,一楼不是很愿意去,于是CZQ很纠结的准备54吃饭这件事情。

我呢。阿牛来找我吃饭的我时候正在开开心心的泡面。

康师傅出了方便面套餐,加上鸡蛋和香肠,其实吃着的时候觉得很无语,加点配料就当自己是叉烧了。

出去买面的时候被阳光照了一照,很暖,好暖呢。

本来准备晒晒被子,一想晒了晚上会不会太热呢,还是歇着吧。

阿牛的小桌子真是不错,我想和他说说我在网上定个一样的送到他北京那边去。这样也许他就不用纠结怎么解决了。

嗯,次宅现在很悠闲的躺在床上听眼花易冷。  //眼花。。

早上起来新陈代谢无聊的时候翻翻自己那本超厚的《C++入门经典》

发现现在回头看觉得很舒服,看来自己境界够了呢。

忽然想如果我就这样悠闲下去呢。

不知道呢。大家都不一样,我也不一定要做到他们做到的事情来证明自己强大。

可还是什么呢。昨晚翻《菜根谭》上面有写,过于最求便不再是最求,过于执着便不再是执着。

释迦牟尼说不要被尘世所缠,也不可被虚幻所缠。

踏踏实实的学着吧,另外省吃俭用,一个月不管怎么说花了1K2还是太不能接受了。

发表在 唠叨 | 标签为 | 留下评论

4月24日 今期何夕

晚上终于做完了长久以来马不停蹄的事情:羽毛球课, 选修,  C++, MFC, 密码学, 餐卡, CPU实验, …

这两个星期忙的自己几乎都没有心情来写博客,好在今天终于弄完了上述大事,下决心让自己休息一下吧。

总结这么多事情,不如上几张图吧。

image image

CPU的设计告一段落,成功完成了各个部件,整体调试到了最后加法输入寄存器,亏在最后时间不够没有完成。

不过现在想来,还是很不错的吧 🙂

image image

MFC的可视化开发也算略有小成,准备了密码学大作业的可视化基础了。

 image

SMS4大功告成,只待兼容进可视化后加上文件输入输出了。

发表在 唠叨 | 标签为 | 留下评论

不把那些奇奇怪怪的巨集和指令搞清楚,只能生产出玩具来。

“只用一件东西,不明白它的道理,实在不高明。”

                                        ——————————————- 林语堂 《朱门》

发表在 网摘, 网络 | 标签为 | 留下评论