2012-04-25
弱勢學生補助喊停 綠批馬政府「沒良心夭壽骨」
http://www.appledaily.com.tw/realtimenews/article/politics/20120425/119978
幹事長潘孟安痛批,馬政府1年花10億廣設游泳池,但區區1.7億補助卻如此苛刻...
2010-01-23
南部缺水!學校缺錢!教部砸120億 全國蓋泳池
http://www.libertytimes.com.tw/2010/new/jan/23/today-t1.htm
教育部預計以每年十億預算,推動長達十二年的「泳起來專案」...
2009-06-17
教部砸12億 要讓台灣有品
http://www.lihpao.com/?action-viewnews-itemid-14894
】教育部租下一列電車,宣告將投入2年12億元推動「品德、品質、品味」的台灣有品運動...
2012年4月28日 星期六
2012年4月27日 星期五
C&C++: 強迫float做低階運算的方法
強迫float做低階運算的方法
float a, b;
long i;
a=0.1;
b=0.2;
i=*(long*)&a^*(long*)&b;
a=*(float*)&i;
i=*(long*)&a^*(long*)&b;
b=*(float*)&i;
i=*(long*)&a^*(long*)&b;
a=*(float*)&i;
=========================================
float a=4.3,b=2.4;
*(long*)&a = *(long*)&a ^ *(long*)&b;
*(long*)&b = *(long*)&b ^ *(long*)&a;
*(long*)&a = *(long*)&a ^ *(long*)&b;
cout << a << ", " << b << endl ;
float a, b;
long i;
a=0.1;
b=0.2;
i=*(long*)&a^*(long*)&b;
a=*(float*)&i;
i=*(long*)&a^*(long*)&b;
b=*(float*)&i;
i=*(long*)&a^*(long*)&b;
a=*(float*)&i;
=========================================
float a=4.3,b=2.4;
*(long*)&a = *(long*)&a ^ *(long*)&b;
*(long*)&b = *(long*)&b ^ *(long*)&a;
*(long*)&a = *(long*)&a ^ *(long*)&b;
cout << a << ", " << b << endl ;
2012年4月22日 星期日
C&C++: Re: [問題] 請教如何只用x,y兩變數來交換彼此數值
作者 LPH66 (-858993460) 看板 C_and_CPP
標題 Re: [問題] 請教如何只用x,y兩變數來交換彼此數值
時間 Mon Apr 11 23:40:29 2011
───────────────────────────────────────
: → littleshan:不要這樣寫!這是 implementation-defined behavior 04/11 15:48
: → littleshan:就是十誡之八啦 04/11 15:49
基本上這個寫法的確是 implementation-defined behavior
不管有沒有加括號都一樣
事情是這樣的
a ^= b ^= a ^= b;
1 2 3 4 5 6 7
這樣寫的人想要做的事的順序是
值為
(7) 取 b 的值 原來的 b
(5) 取 a 的值 原來的 a
(6) 做 (5)^(7) 並把值放回 a 去 原來的 a^b
(3) 取 b 的值 原來的 b
(4) 做 (3)^(6) 並把值放回 b 去 原來的 a
(1) 取 a 的值 原來的 a^b
(2) 做 (1)^(4) 並把值放回 a 去 原來的 b
但有些 compiler (如我手上的 g++ 4.1.0 for win) 會編成這個順序
值為
(1) 取 a 的值 原來的 a
(3) 取 b 的值 原來的 b
(5) 取 a 的值 原來的 a
(7) 取 b 的值 原來的 b
(6) 做 (5)^(7) 並把值放回 a 去 原來的 a^b
(4) 做 (3)^(6) 並把值放回 b 去 原來的 a
(2) 做 (1)^(4) 並把值放回 a 去 一定是 0
結果是原來 a 的值在 b 但 a 卻變成 0 了
問題在於
雖然這個式子的確是分析成
^= (2)
/ \
a ^= (4)
(1) / \
b ^= (6)
(3) / \
a b
(5) (7)
這個樣子 但在計算 a ^= b 時 a b 取值的順序卻是 implementation-defined
也就是在上面那棵語法樹的後序走訪中先走左子樹還是先走右子樹
如果先走左子樹 就是 1 3 5 7 6 4 2 的順序
先走右子樹 就是 7 5 6 3 4 1 2 的順序
而這兩個順序 上面我也寫出來了
後者是順利交換沒錯 前者卻是把 a 搬到 b 後把 a 炸成 0 !
所以結論是千萬不要用這個寫法
---
其實簡單一句話就是十三誡之八裡說的
你不可以在一個運算式(expression)中,對一個基本型態的變數修改其值
超過一次以上。否則,將導致未定義的行為(undefined behavior)
如果真要用 xor 來交換 乖乖寫三條
x ^= y; y ^= x; x ^= y;
就什麼事都沒有....
當然最好的寫法還是 int temp = x; x = y; y = temp; 就是了
--
'You've sort of made up for it tonight,' said Harry. 'Getting the
sword. Finishing the Horcrux. Saving my life.'
'That makes me sound a lot cooler then I was,' Ron mumbled.
'Stuff like that always sounds cooler then it really was,' said
Harry. 'I've been trying to tell you that for years.'
-- Harry Potter and the Deathly Hollows, P.308
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.142
推 attomahawk:推薦這棵 語法樹! 04/12 00:02
推 glennchen:好強大 04/12 00:07
推 loveme00835:不管多炫, 在可讀性上永遠是個失敗品, 是禁忌 04/12 00:09
推 james732:原來如此! 04/12 00:12
推 VictorTom:推語法樹:) 04/12 00:16
→ bibo9901:借問一下, 那寫成 a+=b; b=a-b; a-=b; 可以嗎 04/12 00:39
推 purpose:有緩衝區溢位的風險,如 a = INT_MAX; b = 1; 04/12 00:41
→ purpose:沒有緩衝區,打太快了 04/12 00:41
推 littleshan:overflow 是 undefined behavior 04/12 00:43
推 xatier:語法樹! 推 04/12 07:36
推 wanwan2:讚!! 04/12 08:40
推 genghiskii:3F正解 04/12 10:08
推 j094097:大推 04/12 21:23
推 yauhh:都忘了這件事,果然imperative就怕太依賴state 04/12 21:40
推 h520:用樹講解好清楚啊!! 大推 04/14 13:42
2012年4月17日 星期二
日本《文艺春秋》渡边恒雄:侵蚀日本的大众迎合政治
日本《文艺春秋》渡边恒雄:侵蚀日本的大众迎合政治
http://yyyyiiii.blogspot.com/2012/04/blog-post_15.html
http://yyyyiiii.blogspot.com/2012/04/blog-post_15.html
2012年4月15日 星期日
猜數字 AB值研究
xxxx
ijkl ijkl
1234 ++++ ==== ++++ 2345
4A0B 1234 0A3B 2345 4A0B
2A2B 2134 0A3B 3245 2A2B
.... .... .... .... ....
3A0B 1235 0A3B 2341 3A0B
...
xi,i=0~9, xi為0~9之間的整數,不重複
x0~x9 可能是0123456789, 也可能是3578642190, 也就是沒有重複的數字
以下確定是成立的:
若 AB( 1 2 3 4, i j k l)=cAdB
則 AB(x1 x2 x3 x4, xi xj xk xl)=cAdB
是否存在一組xi, 使:
若AB( 1 2 3 4, x1 x2 x3 x4)=aAbB
則AB( i j k l, xi xj xk xl)=aAbB
ijkl為10個整數0~9,10取4
目前已確定, 當a+b=4時是成立的
那a,b等於其他值呢?
ijkl ijkl
1234 ++++ ==== ++++ 2345
4A0B 1234 0A3B 2345 4A0B
2A2B 2134 0A3B 3245 2A2B
.... .... .... .... ....
3A0B 1235 0A3B 2341 3A0B
...
xi,i=0~9, xi為0~9之間的整數,不重複
x0~x9 可能是0123456789, 也可能是3578642190, 也就是沒有重複的數字
以下確定是成立的:
若 AB( 1 2 3 4, i j k l)=cAdB
則 AB(x1 x2 x3 x4, xi xj xk xl)=cAdB
是否存在一組xi, 使:
若AB( 1 2 3 4, x1 x2 x3 x4)=aAbB
則AB( i j k l, xi xj xk xl)=aAbB
ijkl為10個整數0~9,10取4
目前已確定, 當a+b=4時是成立的
那a,b等於其他值呢?
test java extends cast 繼承 轉型
/** CastTest.java */
class A{}
class B extends A
{
public void f()
{
System.out.println("f() in B");
}
}
public class CastTest
{
public static void main(String args[])
{
A a = new B();
((B)a).f();
(B)a.f(); //
error: not a statement
a.f();
/* error: cannot find symbol
a.f(); // error
^
symbol: method f()
location: variable a of type A */
}
}
static method: compile-time binding
instance method: run-time binding
http://www.javaprogrammingforums.com/java-programming-tutorials/3117-static-fields-inheritance.html
http://www.artima.com/forums/flat.jsp?forum=1&thread=3620
待查: static block
static method: compile-time binding
instance method: run-time binding
http://www.javaprogrammingforums.com/java-programming-tutorials/3117-static-fields-inheritance.html
http://www.artima.com/forums/flat.jsp?forum=1&thread=3620
待查: static block
test java
/** CastTest.java */
public class CastTest
{
class A{}
public static void main(String args[])
{
A a = new A();
}
}
輸出結果:
CastTest.java:7: error: non-static variable this cannot be referenced from a
static context
A a = new A();
^
1 error
static context
A a = new A();
^
1 error
我不懂,哪裡錯了?
若是把 class A 寫在外面,就過了
/** CastTest2.java
*/
class A{}
public class CastTest
{
public static void main(String args[])
{
A a = new A();
}
}
2012年4月14日 星期六
test java gc
/** MyObject.java */
public class MyObject {
static int count;
MyObject() {
++count;
}
public static void main(String[] args) {
MyObject obj1 = new MyObject();
MyObject obj2 = new MyObject();
MyObject obj3 = new MyObject();
System.out.println("目前有" +count+ "個物件");
obj2 = null;
System.out.println("請求G.C.");
System.gc();
System.out.println("目前剩餘" +count+ "個物件");
}
protected void finalize() throws Throwable {
--count;
String tName = Thread.currentThread().getName();
System.out.println("執行finalize()的是:" + tName);
}
}
輸出結果:
目前有3個物件
請求G.C.
目前剩餘3個物件
執行finalize()的是:Finalizer
輸出結果:
目前有3個物件
請求G.C.
目前剩餘3個物件
執行finalize()的是:Finalizer
2012年4月11日 星期三
Use empty-element tag for iframe will not work in Firefox
[HTML][XML][JavaScript]
以下內容之環境為Firefox 11.0
在XML的規則下,start-tag 與 end-tag 中間沒東西的話,可改寫成 empty-element tag
所以 <iframe></iframe> 可以改寫成:
<iframe />
但是,當你把它存成HTML,並用Browser打開它
第一個 <iframe /> 之後的東西都無法顯示
你必須要改成
<iframe></iframe>
才能正常顯示
另外,將xml字串轉換成DOM物件,再將DOM物轉回xml字串,他會改變你的字串
var xmlText = "<iframe></iframe>";
var parser = new DOMParser();
//轉換成DOM物件
var xmlDoc = parser.parseFromString( xmlText, "text/xml" );
var serializer = new XMLSerializer();
//再將DOM物轉回xml字串
var newXmlText = serializer.serializeToString( xmlDoc );
newXmlText 會等於 "<iframe />"
也就是他會自動把 "<iframe></iframe>" 轉成 "<iframe />"
但是,如果xmlText的 <iframe> 與 </iframe> 的中間有個空白鍵
那他就不會自動轉換
也就是說 "<iframe> </iframe>" 依舊還是 "<iframe> </iframe>"
補充:
<iframe> Tag Syntax --- Rules for coding HTML iframe elements
http://www.html-5.com/tags/iframe-tag/syntax.html
...The iframe element is an empty element, with both a start tag and an end tag, not a void element.
Definition of HTML "void element"
http://www.html-5.com/definitions/#void-element
Definition of "empty element"
http://www.html-5.com/definitions/#empty-element
再補充:
,-<http://www.w3.org/TR/xml11/#sec-starttags>
|
| [...]
| Tags for Empty Elements
|
| [44] EmptyElemTag ::= '<' Name (S Attribute)* S? '/>' [WFC: Unique Att Spec]
|
| Empty-element tags may be used for any element which has no content,
| whether or not it is declared using the keyword EMPTY. For
| interoperability, the empty-element tag SHOULD be used, and SHOULD
| only be used, for elements which are declared EMPTY.
See also <http://www.w3.org/TR/xhtml-media-types/#compatGuidelines>:
| A.3. Elements that have no content
|
| If an element permits content (e.g., the div element) but an instance
| of that element has no content (e.g., an empty section), DO NOT use
| the "minimized" tag syntax (e.g., <div />).
|
| Rationale: HTML user agents may give uncertain results when using the
| [...] minimized syntax permitted by XML when an element has no content.
以下內容之環境為Firefox 11.0
在XML的規則下,start-tag 與 end-tag 中間沒東西的話,可改寫成 empty-element tag
所以 <iframe></iframe> 可以改寫成:
<iframe />
但是,當你把它存成HTML,並用Browser打開它
第一個 <iframe /> 之後的東西都無法顯示
你必須要改成
<iframe></iframe>
才能正常顯示
另外,將xml字串轉換成DOM物件,再將DOM物轉回xml字串,他會改變你的字串
var xmlText = "<iframe></iframe>";
var parser = new DOMParser();
//轉換成DOM物件
var xmlDoc = parser.parseFromString( xmlText, "text/xml" );
var serializer = new XMLSerializer();
//再將DOM物轉回xml字串
var newXmlText = serializer.serializeToString( xmlDoc );
newXmlText 會等於 "<iframe />"
也就是他會自動把 "<iframe></iframe>" 轉成 "<iframe />"
但是,如果xmlText的 <iframe> 與 </iframe> 的中間有個空白鍵
那他就不會自動轉換
也就是說 "<iframe> </iframe>" 依舊還是 "<iframe> </iframe>"
補充:
<iframe> Tag Syntax --- Rules for coding HTML iframe elements
http://www.html-5.com/tags/iframe-tag/syntax.html
...The iframe element is an empty element, with both a start tag and an end tag, not a void element.
Definition of HTML "void element"
http://www.html-5.com/definitions/#void-element
Definition of "empty element"
http://www.html-5.com/definitions/#empty-element
再補充:
,-<http://www.w3.org/TR/xml11/#sec-starttags>
|
| [...]
| Tags for Empty Elements
|
| [44] EmptyElemTag ::= '<' Name (S Attribute)* S? '/>' [WFC: Unique Att Spec]
|
| Empty-element tags may be used for any element which has no content,
| whether or not it is declared using the keyword EMPTY. For
| interoperability, the empty-element tag SHOULD be used, and SHOULD
| only be used, for elements which are declared EMPTY.
See also <http://www.w3.org/TR/xhtml-media-types/#compatGuidelines>:
| A.3. Elements that have no content
|
| If an element permits content (e.g., the div element) but an instance
| of that element has no content (e.g., an empty section), DO NOT use
| the "minimized" tag syntax (e.g., <div />).
|
| Rationale: HTML user agents may give uncertain results when using the
| [...] minimized syntax permitted by XML when an element has no content.
標籤:
HTML,
JavaScript,
XML
2012年4月8日 星期日
JavaScript XML CSS 相關
觀念釐清:
[JavaScript] 這篇文章真是太棒了,學 JavaScript function 必看文章JavaScript, 5 ways to call a function
http://devlicio.us/blogs/sergio_pereira/archive/2009/02/09/javascript-5-ways-to-call-a-function.aspx
[JavaScript] 有些奇特的例子,但解說容易令人混淆,強烈建議看完上篇再看這篇
令人又愛又恨的 JavaScript function
http://geek-cafe-hk.blogspot.com/2011/06/javascript-function.html
[XML] 這網站太棒了,完整詳細的介紹
XML namespace
http://zvon.org/xxl/NamespaceTutorial/Output_chi/contents.html
[WWW] 被中文翻譯混淆,查英文才知真意
What is synchronous?
http://www.webopedia.com/TERM/S/synchronous.html
What is asynchronous?
http://www.webopedia.com/TERM/A/asynchronous.html
好用工具:
[HTML][CSS]設計Table的好工具HTML and CSS Table Border Style Wizard
http://www.somacon.com/p141.php
[JavaScript]
好用到掉渣的IE8 Developer Tools--JS效能調校經驗
http://blog.darkthread.net/post-2009-06-08-ie8-devtool-profiler.aspx
查資料好所在:
[JavaScript]非常好的解說與範例,且附懶人demo關於 implementation 的 createDocument() 與 createDocumentType()
createDocument method (implementation)
http://help.dottoro.com/ljqlhagh.php
[JavaScript]非常好的解說與範例,且附懶人demo
比較 serializeToString 與 outerHTML
XMLSerializer object
http://help.dottoro.com/ljwwrcvr.php
[HTML][CSS] 從裡面找到了沒過時的方法(符合HTML4),不然我還真不知如何置中Box和Table
Centering Tables
http://theodorakis.net/tablecentertest.html
[CSS]
CSS Reference
http://www.w3schools.com/cssref/default.asp
[HTML]
HTML Tutorial
http://www.w3schools.com/html/default.asp
[JavaScript] 這網站不錯,都幫你整理好了
螞蟻的 JavaScript: document:方法(F-Z)
http://ant4js.blogspot.com/2008/12/documentmthfz.html
http://reference.sitepoint.com/javascript/Document/getElementsByTagName
Fancy:
[CSS] CSS學得不好,現在才發現有這麼酷的東西CSS Pseudo-elements
http://meyerweb.com/eric/css/tests/css2/sec05-11-03.htm
http://zh.wikipedia.org/zh-hant/%E5%B1%82%E5%8F%A0%E6%A0%B7%E5%BC%8F%E8%A1%A8
[CSS] 計算上色,酷,可惜還沒統一
http://www.colorzilla.com/gradient-editor/
http://gradients.glrzad.com/
http://www.webdesignerwall.com/demo/css3-dropdown-menu/css-gradient-dropdown.html
http://webdesignerwall.com/
標籤:
CSS,
HTML,
JavaScript,
XML
2012年4月7日 星期六
2012年4月5日 星期四
XML XSL
XML與XSL
http://www.study-area.org/coobila/tutorial_202.html
搞了半天的 XML+XSLT 在 Firefox 下不显示的问题
http://www.cnblogs.com/yyw84/archive/2007/04/18/718236.html
http://www.study-area.org/coobila/tutorial_202.html
搞了半天的 XML+XSLT 在 Firefox 下不显示的问题
http://www.cnblogs.com/yyw84/archive/2007/04/18/718236.html
訂閱:
文章 (Atom)