翻同事的The C Programming Language 2th(C程序设计语言)和对应的习题解答The C Answer Book看到的。
实体书看得爽,但写文章还是得找电子版,英文的chm有,可惜习题解答没文字版……
The shift operators < < and >> perform left and right shifts of their left operand by the number of bit positions given by the right operand, which must be non-negative. Thus x < < 2 shifts the value of x by two positions, filling vacated bits with zero; this is equivalent to multiplication by 4. Right shifting an unsigned quantity always fits the vacated bits with zero. Right shifting a signed quantity will fill with bit signs (``arithmetic shift'') on some machines and with 0-bits (``logical shift'') on others.
The unary operator ~ yields the one’s complement of an integer; that is, it converts each 1-bit into a 0-bit and vice versa. For example
sets the last six bits of x to zero. Note that x & ~077 is independent of word length, and is thus preferable to, for example, x & 0177700, which assumes that x is a 16-bit quantity. The portable form involves no extra cost, since ~077 is a constant expression that can be evaluated at compile time.
As an illustration of some of the bit operators, consider the function getbits(x,p,n) that returns the (right adjusted) n-bit field of x that begins at position p. We assume that bit position 0 is at the right end and that n and p are sensible positive values. For example, getbits(x,4,3) returns the three bits in positions 4, 3 and 2, right-adjusted.
/* getbits: get n bits from position p */
unsigned getbits(unsigned x, int p, int n)
{
return (x >> (p+1-n)) & ~(~0 < < n);
}
The expression x >> (p+1-n) moves the desired field to the right end of the word. ~0 is all 1-bits; shifting it left n positions with ~0< places zeros in the rightmost n bits; complementing that with ~ makes a mask with ones in the rightmost n bits.
Exercise 2-6. Write a function setbits(x,p,n,y) that returns x with the n bits that begin at position p set to the rightmost n bits of y, leaving the other bits unchanged.
unsigned setbits(unsigned x, int p, int n, unsigned y)
{
return (x & ((~0 < < (p + 1)) | (~(~0 << (p + 1 - n))))) | ((y & ~(~0 << n)) << (p + 1 - n));
}
下面这个比较快:
unsigned setbits(unsigned x, int p, int n, unsigned y)
{
return x & ~(~(~0 < < n) << (p+1-n)) |
(y & ~(~0 << n)) << (p+1-n));
}
阅读全文...
新Linux服务器配好了,WD的4k扇区带来的分区问题也解决了,旧下载机上用rtorrent拖的文件也该拷过来了。
直接走sftp拷的话,虽然网络层是通过SSL校验的,但磁盘那块没;再加上下载机身loongson2E的,走sftp太费CPU。所以,还是走BT。问题是,rtorrent老去连ADSL外面的机子,留给LAN的网速就10M不到。
阅读全文…
Galaxy现在的网络结构是:
ADSL->Linksys WRT110->PC->Notebook
(万幸当年没接着用TP-LINK的路由,换了这个可以自己加路由表的,虽然在Linksys中还是算低端……
PC是装Gentoo的个人文件服务器(兼BT、ED)。
WRT110带的是100M交换机,虽然可以冲到上下各10M字节的满速,但离硬盘的速度还是差出好远。
而笔记本就一个RJ45,虽然走无线也可解决上网问题,但一来辐射不爽,二来,5100那卡挂一晚BT,第二天在单位竟然会隔着塑料板烫手。
所以,PC到NB连1G网线势在必行。
iproute2搞NAPT也行,但一想到上公网要经过两次NAT,心里就不爽。还是走经典途径,配路由表。
阅读全文…
Galaxy现在是Win和Linux双机都用来写程序,两边用git同步(当然目的是版本管理)。
现在的问题是,Linux下改完了可以在Win下pull,但Win下改了却只能原地push上去,好吧,我没装好SFU+GentooPrefix,也没好好配git。
push只会改远程的树(./.git/*),不会改树下的文件。跑过去git status就会告诉你有“Changed but not updated”。问题是,咋把这边改动后的文件提出来?
阅读全文…
以前一直用Roboform来管理密码,有Keygen也就不在乎是否需要交米。后来,打算用Linux,却被这个问题困扰了——Roboform没有Linux版。
KeePass是Open Source的,但在浏览器整合上没Roboform方便。KeeForm和KeePass Toolbar也不支持Linux。
刚刚上wiki看到KeePassX(其实Gentoo装的就是这个…),但还是没自动填表,非要drag’n’drop fields。(确实有Auto-Type,不过,是SendKey之类的东东。)
偶然间,看到LastPass,虽然是在线的,但国外的在线服务总比国内的可信,比如Gmail。看完privacy,感觉还行。至于是否保存三次元的密码(就素那些银行帐号啥的),Galaxy还没想好。
阅读全文…
说是排序,其实大家用的时候往往都是来合并其他方法排序的局部结果的。
英文wiki直接写具体到排序方法最后才谈大家咋用,中文wiki就上来就谈合并,后面才讲咋排序。老外从小到大,咱从大到小,倒也是常态。
阅读全文…
本来是查其他东西的,不想某微薄写了:我今天才知道,相濡以沫后半句是不如相忘于江湖。吃惊之余,G之,消息属实。
鉴于Galaxy也是今天才知道,特作文以记之。
嘛,人类嘛,断章取义什么的,估计是难以避免的吧……
是百折不饶,还是及时放弃另辟蹊径?这,是个问题。
嘛,只要自己考虑清楚了,日后不要后悔就行了。不管怎么说,自己都得为自己做出的选择负责。
Galaxy一向不大量服用酒精等麻醉剂,就是不想对迷糊的选择负责。哪怕因此没作成酒肉交易,那,也是我的选择!(反正Galaxy不是政客不是商人不是陪酒的……)
http://wx.ccut.edu.cn/index/%B9%C5%B5%E4%CE%C4%D1%A7/%D7%AF%D7%D3/06.htm
泉涸,鱼相与处于陆,相呴以湿,相濡以沫,不如相忘于江湖。与其誉尧而非桀也,不如两忘而化其道。
——《庄子·内篇·大宗师 第六》
http://www.epochtimes.com/b5/1/9/12/c5692.htm
泉 涸 , 魚 相 與 處 於 陸 , 相 呴 以 濕 , 相 濡 以 沫 , 不 如 相 忘 於 江 湖 。 與 其 譽 堯 而 非 桀 也 , 不 如 兩 忘 而 化 其 道 。
——莊 子( 內 篇 ﹒ 大 宗 師 第 六 )
http://www.zclw.net/article/sort024/sort029/info-15208.html
四、关于“鱼”与“江湖”
鱼是《大宗师》篇中出现的一个很有意思的意象。在文章中,有一句极为经典的话“泉涸,鱼相与处于陆,相啕以湿,相濡以沫,不如相忘于江湖。”我们现代人通常用“相濡以沫”来形容患难夫妻之间不渝的感情,是为我们所称赞的。而在那时的庄子看来,相濡以沫却并不是件值得提倡的事。与其在干涸的陆地上相互用唾液来湿润对方的皮肤,倒不如回到江湖之中,哪怕互不认识对方,但却恢复了在水中游泳的自由。
鱼本就应该生活在水中,游泳是鱼自身的天性。而鱼与鱼之间的“相濡以沫”,表面上看似道义之举,实际上却扼杀了鱼作为鱼所本应具有的天性。鱼只有生于水中才能够生存,离开了水的鱼,即使“相濡以沫”却终不能逃脱死亡的结局。而这与庄子所推崇的逍遥自由的精神是背道而驰的。
我们可以把鱼理解为对人的隐喻,而江湖则是对自然的隐喻。鱼只有回归水中方能获得自由;而人只有回归自然、融入自然方能体悟出“大道”。故曰:“鱼相造乎水,人相造乎道。”“鱼相忘乎江湖,人相忘乎道术。”
http://www.xslx.com/htm/zlsh/zzpj/2008-04-23-22697.htm
【原文】
泉涸,魚相與處於陸,相呴以濕,相濡以沫,不如相忘於江湖。與其譽堯而非桀也,不如兩忘而化其道。夫大塊載我以形,勞我以生,佚我以老,息我以死。故善吾生者,乃所以善吾死也。
【述义】
打个比喻来说吧。鱼游于水中是多么地自由自在,然而,当江湖因干旱而没有水时,鱼就只得相处于干涸了的河床的陆地上,它们以呵气和吐沫的办法来相互保持身体的湿润,仿佛显得更加亲近恩爱,尽管如此,与其被迫挤在一起还是不如原来在江湖的深水中彼此相忘自由自在地游来游去。人也一样,与其赞誉唐尧为圣君痛骂夏桀为庸君,还不如把赞誉和痛骂都忘掉,将一切归之于“道”,也就是归之于“天”的根本规定性,以“道”的标准来善待一切。如此说来,是自然这个“大块”承载着我们的形体,使我们能够渡过一生,不仅使我们有养老之地,也使我们死去有安息之地,所以,我们不仅要以“善”的观念来对待自己的“生”,而且也要以“善”的观念来对待自己的“死”。
阅读全文…
最近评论