【转】到底是什么错了呢?

作者:梦幻流星 | 来自:丁洋,内蒙古

本部分仅作保存。

大学究竟原本是什么样的?

德国二百年前的教育宣言曾经如此说道:教育的目的,不是培养人们适应传统的世界,不是着眼于实用性的知识和技能,而要去唤醒学生的力量,培养他们自我学习的主动性,抽象的归纳力和理解力,以便使他们在目前无法预料的种种未来局势中,自我做出有意义的选择。教育是以人为最高的目的,接受教育是人的最高价值的体现。

宋朝一代大儒张载曾如此说过:为天地立心,为生民立命,为往圣继绝学,为万世开太平!

五年多以前,我进入了全国重点名牌大学:武汉大学读书。我抱着最理想的热情,以为从此走上了一条报效祖国,报效父母的人生坦途,以为我的人生即将要大展宏图!
三年以前,抱着对“我的大学”最大的疑惑和不解,我辞去了分团委副书记的职务,开始认真地大量阅读和思考我的人生,我的大学,我的未来。试图找到对周围一切我无法理解问题的解决方案。这一次的决定,也意味着我放弃了原来一直抱有的,通过“从政”来为国家民族做贡献的“远大理想”。
一年半以前,我自以为已经看清了中国大学的本质,不愿意再继续自欺欺人地“学”下去,主动放弃了学校保研的名额,退出了用青春和热血换取一纸毫无真实内容和分量文凭的游戏,退出了中国虚伪可笑的“精英学历社会”。决心进入企业,踏踏实实地从事“实业”,站到中国经济第一线,为国家和社会以及自己作真实的努力和贡献。因为我不想用镀金的“文凭”和“文化”来糊弄我自己,也糊弄其他人。
今天,在毕业工作一年多后,在我的工作和能力已经得到老板和同事的肯定,马上就要派我出国任职的时候,我却辞职了。我不想违心地接受这个光荣,我决心到远在大山中的一所规模很小的,志在探索中国新教育模式的私立学堂,试图通过投身中国最缺乏,
最需要的教育,来实现我人生最大的价值:为我热爱的中国,为中国的孩子和未来,也为我自己,做一点真正有意义的事情,而不是日复一日地在无望的等待中浪费掉自己的生命。
因为,中国真正缺的不是钱,我缺的也不是钱。中国缺文化,缺教育。我也一样!
周围的人都认为我疯了,鬼迷心窍阿了。放弃了中国人从小就灌输的,从小就追求的“最正宗”、“最正确”、“最理所当然”的道路的确令人不解。我也在认真地思考我这样做的理由。在这里,把自己对家人和朋友质疑的回答写出来。你们也可以自己评析:到底是我疯了,还是这个社会疯了?

 

继续阅读

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

C 文件操作封装

C基础文件操作常常遇到,例如 fopenfputc 等,在其之上可以自己重新定义文件操作,写大作业的过程中需要重写文件输入输出。(大一做的调用linux函数,在win下还是不方便)
于是重写了文件封装。
主要实现的功能:获取文件大小(字节单位),实现无视空格回车等特殊符号的文件流读入(文件结束符EOF除外)

ctqmumu@ctqmumu-laptop:~/桌面/Code/sms$ ./smsfile Filetest/md5.c 
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0:./smsfile
1:Filetest/md5.c
(nil):0x9819008
file_size:8850(Bytes)
len is 0
copy[30]:
2F2A0D0A202A205468697320636F646520696D706C656D656E7473207468

代码点击查看。
继续阅读

发表在 C, Linux, 系统, 编程 | 标签为 , | 一条评论

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

下次的第二章小结会以浮点数结束。
这几天重新看CS:APP,一直在想一个问题,那就是究竟什么才算 “优秀的程序员”?
下午突然有所感想,那时正在看《编程珠玑》(Programming Pearls),第一章习题中的答案似乎不太准确(P196页 C下使用位向量的举例):

#defien BITSPERWORD 32
#defien SHIFT 5
#define MASK 0x1F
#define N 10000000
int a[ 1 + N/BITSPERWORD];

void set(int i) {        a[i>>SHIFT] |=    (1<<(i & MASK));}
void clr(int i) {        a[i>>SHIFT] &=   ~(1<<(i & MASK));}
int test(int i) { return a[i>>SHIFT] &     (1<<(i & MASK));}

当出现负数时会如何?随后我又否定了自己的观点,因为题意中标注只会有正整数。可是如果是负数呢?
那么很可惜算数位移并不会对他造成太大的偏差,因为填充的最高位被新的次高位抵消一半,而整体权值下降一半。
却需要重新定义数组了。
想到这个问题确实是因为重新看了第二章的缘故。

另外这里还有一点小彩蛋。

有么有真正想过CPU对于你的代码的时间消费呢?
CS:APP里面提到:
加法,减法,位级运算,位移 只需要1个时钟周期
乘法需要至少 12个时钟周期
除法需要至少 30个时钟周期
所以GCC编译器很喜欢尽可能的将乘除换成左右位移 🙂

例如

  result = X*M + Y/N;
  return return;

 >>GCC to >>

  int t X;
  X << 4;
  X -= t;
  if (Y < 0) Y += 3;
  Y >>= 2;
  return X+Y;

猜猜M,N是多少? (提示:对于二进制补码左移,如果X < 0 需要在位移前偏置(biasing), 即加上2^k-1)

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

宇宙英雄·奥特曼

宇宙英雄·奥特曼
aotuman
奥特曼组合图

奥特曼(也叫做艾瑟尔·奥特曼,后称初代奥特曼)是第一部登上荧屏的奥特曼系列作品,是奥特曼的开山鼻祖(怪兽概念始于奥特Q)。
奥特曼协助早田队员,保护人类免受怪兽的侵害,粉碎以侵略地球为目标的宇宙人的阴谋,为保卫地球的和平而战斗。
继续阅读

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

深入理解计算机系统——第二章小结(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发布日志,虽然只有快速发布功能囧。

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