隨筆-3  評論-0  文章-0  trackbacks-0
            2006年7月13日

          浮點(diǎn)數(shù)分為單精度和雙精度,Java中的單精度和雙精度分別為float和double.你們知道float和double是怎么存儲的嗎?

            float占4個(gè)字節(jié),double占8個(gè)字節(jié),為了方便起見,這里就只討論float類型.
            float其實(shí)和一個(gè)int型的大小是一樣的,一共32位,第一位表示符號,2-9表示指數(shù),后面23位表示小數(shù)部分.

            這里只舉一個(gè)例子,希望能拋磚引玉,就是研究一下浮點(diǎn)數(shù)0.1的存儲形式,先運(yùn)行這個(gè)程序.


          ?  public class Test{
            public static void main(String[] args) {
            int x = 0x3d800000;
            int i = 1 << 22;
            int j = 1 << 4;
            float f = 0.1f;
            int y = Float.floatToIntBits(f);
            float rest = f - ( (float) 1) / j;
            while (i > 0) {
            j <<= 1;
            float deta = ( (float) 1) / j;
            if (rest >= deta) {
            rest -= deta;
            x |= i;
            }
            i >>= 1;
            }
            pr(x);
            pr(y);
            }

            static void pr(int i) {
            System.out.println(Integer.toBinaryString(i));
            }

            }
          ?
            結(jié)果:
            111101110011001100110011001101
            111101110011001100110011001101

            程序說明:
            int x=0x3d80000;
            因?yàn)楦↑c(diǎn)表示形式為1.f*2n-127我們要表示0.1,可以知道n-127=-4,到n=123
            符號為正,可知前9是 001111011,暫時(shí)不考慮后面的23位小數(shù),所以我們先假設(shè)x=0x3d800000;


          ?  int i = 1 << 22;
            i初始為第右起第23位為1,就是x的第10位


          ?  int j = 1 << 4;

            i初始為4,因?yàn)閚-127為-4,這里是為了求它的倒數(shù).


          ?  float f = 0.1f;
            int y = Float.floatToIntBits(f);

            y就是它的32位表示


          ?  float rest = f - ( (float) 1) / j;

            這個(gè)rest表示除了1.f中的1剩下的,也就是0.f


          ?  while (i > 0) {
            j <<= 1;
            float deta = ( (float) 1) / j;
            if (rest >= deta) {
            rest -= deta;
            x |= i;
            }
            i >>= 1;
            }

            這個(gè)循環(huán)來計(jì)算23位小數(shù)部分,如果rest不小于deta,表示這個(gè)位可以置為1.

            其他的不多說了,輸入結(jié)果是一樣的,可以說0.1這個(gè)浮點(diǎn)數(shù)肯定是不精確的,但是0.5可以精確的表示,想想為什么吧.


          轉(zhuǎn)至 www.csdn.net

          posted @ 2006-07-16 13:37 StarShowerJavaWorld 閱讀(311) | 評論 (0)編輯 收藏
          隨著一曲Love in December,Club 8樂隊(duì)清新的樂風(fēng)慢慢滲透向各個(gè)區(qū)域.澄澈,水晶般透明無瑕......





          成立時(shí)間:1995年

          團(tuán)體成員:
          主唱卡羅林娜·柯姆斯塔德(KarolinaKomstedt);
          詞曲作者、編曲、樂器演奏約翰·昂格伽德(JohanAngergard)



          1995 年,成立Club 8,96年出版第一張唱片《Nouvelle》。七年里,他們曾經(jīng)在不同的唱片公司出版唱片,其中包括西班牙甜美夏日名廠Siesta公司,后來離開,選 擇了DIY的自主之路,自行制作唱片,然后交由不同的唱片公司發(fā)行,因?yàn)檫@樣的方式可以直抒真我情懷。

          樂隊(duì)的標(biāo)志是女主唱 Karolina的飄逸嗓音,七年來,這把聲音在多少個(gè)寒風(fēng)襲來的夜晚給無數(shù)孤寂心靈帶來一絲暖意;樂隊(duì)的主腦是Johan,他負(fù)責(zé)Club 8所有歌曲的創(chuàng)作和樂器,同時(shí)還和弟弟組成另一支樂隊(duì)The Acid Kings;除此之外,以音樂為生的他還擁有一間錄音棚Summersound Studio,出版了很多專供夏日聆聽的愜意聲響;最后,他還是Labrador唱片公司的要員。

          Johan喜歡美國導(dǎo)演Woody Allen,Hal Hartly,以及當(dāng)?shù)刂骷襏lf Lundell,但Club 8的音樂并非受他們影響,而是受其他熱愛的樂隊(duì)和他們自己的生活影響。Johan最喜歡英國樂隊(duì)The Smiths,對他來說,這支樂隊(duì)開啟了另一個(gè)讓人目眩神迷的世界的大門;他深信, The Smiths為所有的Indie Pop樂隊(duì)打開了音樂工業(yè)的大門;聽到The Smiths,讓很多人大開眼界。

          Club 8有很多怪習(xí)慣,比如說他們不希望太出名,又比如說他們覺得瑞典當(dāng)?shù)氐牧餍邪裆隙鄶?shù)是一些垃圾音樂。他們也從來不作現(xiàn)場演出,因?yàn)闃逢?duì)中只有兩個(gè)人,現(xiàn)場 演出無法表現(xiàn)所有樂器,除非是事先制作音樂在現(xiàn)場卡拉OK或者邀請其他樂手,但這都是他們所厭惡的;他們討厭彩排,也從來不彩排自己的歌曲----“現(xiàn)場 演奏是浪費(fèi)時(shí)間,我們不喜歡、也無法在現(xiàn)場好好演奏”----仿佛他們生來只為在錄音棚里制作美妙的聲音。他們習(xí)慣把歌寫好后,就馬上在自己的錄音棚里錄 音,因?yàn)檫@樣可以更好地保留創(chuàng)作時(shí)最初始的感覺。一般來說,他們的歌曲成品做好離創(chuàng)作的時(shí)間最多只有一個(gè)星期,有時(shí)甚至只是幾分鐘。

          Club 8的音樂風(fēng)格是Anorak Pop和Easy Listening的混合體,類似的聲音我們也許聽過,從前的Sarah Record和新干線唱片公司就有很多情調(diào)動人的類似出品,但他們又是獨(dú)一無二的。根據(jù)Johan自己的形容,Club 8是:“旋律優(yōu)美的,哀愁、感性、放松的(Melodic,Melancholic,Sensitive,Ease Down)”,他希望在音樂中更好地表達(dá)自己,不希望別人聽到他們時(shí)說:噢,他們聽起來象誰誰誰。



          無意中在網(wǎng)上還發(fā)現(xiàn)了這么好聽歌。雖然和技術(shù)無關(guān)。但我是這的世界。

          posted @ 2006-07-13 22:56 StarShowerJavaWorld 閱讀(230) | 評論 (0)編輯 收藏
          主站蜘蛛池模板: 余姚市| 龙泉市| 凤台县| 称多县| 江口县| 公主岭市| 宿迁市| 伊宁县| 铁力市| 城固县| SHOW| 和平区| 霍山县| 自贡市| 延川县| 玛纳斯县| 化州市| 江孜县| 永昌县| 乐业县| 谢通门县| 德阳市| 平原县| 黄浦区| 元氏县| 淮滨县| 日照市| 永和县| 区。| 沙坪坝区| 白城市| 工布江达县| 古交市| 巴南区| 翼城县| 镇江市| 龙岩市| 沾益县| 香格里拉县| 嵊州市| 绩溪县|