顯示文章

這裡允許您檢視這個會員的所有文章。請注意, 您只能看見您有權限閱讀的文章。


文章 - asdf

頁: [1] 2 3 4
1
我不知道這個問題要貼在哪裡

一個機器的信號
使用數位信號比較可靠
為什麼

我的想法是:
使用數位(離散)信號
電路比較容易偵測到信號(通常是電壓)的變化

我這學期修了一門"交換電路與邏輯設計"
我問老師
他說:
數位信號可以加檢查碼
容易容錯
而這個問題已經是很深的問題了
以後才會學到

請問各位:
什麼時候才會學到呢?

2
Network 討論版 / [問題] Broadband 與頻率多工
« 於: 2005-09-19 14:23 »
http://www.study-area.org/network/network_material.htm

關於 baseband 指的是基頻訊號,像是我們看的電視的 AV 訊號一樣,同一時間就只有一組訊號在傳輸﹔那相對於基頻訊號的就是射頻訊號,像是 CATV 就是運用射頻訊號進行傳輸,同時以不同的載波,傳輸不同的訊號。對於 broadband 是相對於窄頻,這兩個字一個指的是訊號的調變方式,一個是在對頻寬的稱呼,兩個不能相比較。上圖是以多工方式來說明:一個是時間為基底的多工(TDM, Time Division Multiplexing),一個是以頻率為基底的多工方(Frequency Division Multiplexing)。一般而言網路都是時間多工的方式來進行傳輸,這也是 CSMA/CD 的作用。


訊號以電流傳輸
也會有頻率嗎
難道這電流是交流電
所以有頻率嗎
如果不是
那這頻率是什麼?

3
雜七雜八 / 請推荐計算機架構的書
« 於: 2005-08-29 07:41 »
能不能為這些科目列一個學習的先後次序?

4
雜七雜八 / 請推荐計算機架構的書
« 於: 2005-08-28 22:46 »
那要先讀什麼?
線代和高等代數嗎?
還有什麼要先讀的?
組語和計組要一起讀
還是有先後次序?

5
雜七雜八 / 請推荐計算機架構的書
« 於: 2005-08-27 22:41 »
各位可能不了解我目前遇上的困難
請看這篇討論:
http://phorum.study-area.org/viewtopic.php?t=33317

6
雜七雜八 / 請推荐計算機架構的書
« 於: 2005-08-25 07:54 »
我手邊有一本中文的 "計算機組織與架構"
我覺得它寫得不清不楚
有的部分根本沒有交代完整
內容給人跳躍式思考的感覺
好像還要先學組語才看得懂........

怎樣才算寫得清楚呢?
Apostol 的 Calculus 就寫得很清楚
(Calculus 一定要讀 Apostol!!呵呵)
每一個推導過程都交代得很詳細
而且很有次序
不會一個定理還沒證就證下一個定理

我也想要一本這樣的計算機結構的書
最好是大師寫的書
這樣才能吸收到大師的思想
而且以後讀別的東西才不會銜接不上
不用再重讀
英文的沒關係

我應該會傾向於自學
因為很多課都衝堂

對了
問一下:
學計算機結構要先學什麼東西嗎
計算機結構和計算機概論一樣嗎?

7
我的書出了一些習題:

寫以下的宣告式:
指向內含 10 個整數的陣列的指涉器 (reference)
指向字串陣列的指標

我這樣寫(依序)
int& c[10];       // 指向內含 10 個整數的陣列的指涉器
string* d[10];      // 指向字串陣列的指標

這樣寫其實不太符合要求
(而且第一行還是錯的)

那要如何寫呢?
我不了解,希望大家能幫我

8
左值(lvalue) 是一個可以取得其位址的物件
(以下 i 是一個變數)
為什麼 ++i 是左值
為什麼 i++ 不是左值
我不了解,希望大家能幫我

9
我花了半個早上試了一下
發現小畫家產生 2 色的 Bitmap Data 是這樣的
例如一個寬 8 行(pixels), 高 6 列的Bitmap Data (以下為16進位數字)

55   // 代表第六列, = 01010101
AA
AA
AA
Ff   // 代表第五列, = 11111111
00
00
00
ff
00
00
00
ff
00
00
f0
ff
f0
f0
f0
f0
f0
f0
f0

上述數字的第一行到第四行是
55   // 代表第六列, = 01010101,所以第六列由左到右為:黑白黑白黑白黑白
AA   // 以下三行對圖形沒有影響
AA
AA

其它依此類推

可是為什麼小畫家要產生這樣 "寫一行空三行" 的 Bitmap 呢?
我不了解,希望大家能幫我

10
我想我找到了答案

在c++文法裡的定義:

octal-escapesequence:
   \ octal-digit
   \ octal-digit octal-digit
   \ octal-digit octal-digit octal-digit

hexadecimal-escape-sequence:
   \ hexadecimal-digit
   hexadecimal-escape-sequence hexadecimal-digit

所以八進位寫法在最多三位的時候會自動截斷
可是十六進位不會

11
甚麼叫做x86 protection mode

12
引述: "螢火飛"
老兄,您兩年前就開始問這類問題了,怎麼兩年來絲毫沒有進步呢?

不好意思
我確實是兩年前開始學C++
可是因為功課太忙
中斷了一年多

13
程式討論版 / Re: bool的大小
« 於: 2005-08-08 06:39 »
引述: "CROMA"

因為效率的問題阿 在 外部的記憶體
一個 bit 的存取時脈跟 一個 64bit(視 CPU 的資料 Bus 寬度) 的資料是 一樣的
一般常見的 1 bit 存取 大都是在 晶片內部的旗標處理

那是不是一個 bit 的定址比 64bit 花較多的時間?

14
我說過了
引述: "asdf"
我想挑戰它

15
我把一個 2 色
由小畫家產生的 BMP 檔案解碼
寬 8 pixels, 高 6 pixels:

    ofstream fout("C:\\Dev-Cpp\\Templates\\colour2_24.txt");
    ifstream fin("C:\\Dev-Cpp\\Templates\\colour2_24.bmp");
    char a[F_size];    // 由 BMP 檔案的大小決定,在此為 86 Bytes
   
    fin >> a;
   
    for( int i=0 ; i<F_size ; i++ ){
        fout << hex << (short)(a) << endl;
    }

    fin.close();
    fout.close();
   
結果:
問題在於 2 色的 BMP 檔案
一個 pixel 應該只佔 1 個 bit
可是 Image Data 有 24 Bytes
等於一個 pixel 佔 4 個 bits,為什麼?

42          // Line 1, HEADER
4d
56
0
0
0
0
0
0
0
3e
0
0
0
28         // Line 15, INFOHEADER
0
0
0
8
0
0
0
6
0
0
0
1
0
1
0
0
0
0
0
18
0
0
0
ffffffc4
e
0
0
ffffffc4
e
0
0
0
0
0
0
0
0
0
0
0         // Line 55, palette
0
0
0
ffffffff
ffffffff
ffffffff
0
0         // Line 63, Image Data
0         // 兩個 pixel 佔一個 byte??
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

16
我的環境:
Win98
Compiler: gcc 2.95.3-6
IDE:      Bloodshed Software Dev-C++ 4.9.7.0

我宣告一個陣列:

      int arrInt[10];   //陣列名稱為arrInt,型態為int,大小為10

    for(int i=0; i<22; i++){
        arrInt = 100;
        fout << arrInt << endl;   // fout 有宣告過,輸出到檔案
    }

我要從 arrInt[0] 寫到 arrInt[21]
是因為我想挑戰它的極限
i<10 到 i<16 都可以把記憶體中原有的資料覆寫過去
(原本不是 100 也不是0 位址,被覆寫成100)
(本來我以為:其值為 0 的位址可覆寫,非 0 則不可覆寫,可是錯了)
可是i<17 開始
執行時會出現 "這個程式執行的作業無效,即將關閉"

記憶體覆寫的極限在那裡呢?

17
引述: "alingo"

這是要看這個變數是不是全域變數
如果是C++ compile才會指定一個初始值,0 給它
如果不是全域變數 C++ 是不會給值的


那為什麼要設計成
全域變數給值
不是全域變數不會給值?

18
程式討論版 / Re: bool的大小
« 於: 2005-06-29 23:33 »
引述: "螢火飛"

那麼!1bit 如何儲存在記憶體中呢?

我的書上寫著:
很少機器能讓你直接(將memory)定址到個別的位元。
真的嗎?
這是為什麼?

19
Computer 討論版 / 7bits ASCII
« 於: 2005-06-25 06:39 »
舊的 7bits ASCII 一個字元只有七個位元
可是這樣的字元儲存在硬碟上
一個字元會佔據 1 Byte (8 bits) 還是 7 bits?

20
我的書上寫著:
(C++程式語言經典增訂版 Bjarne Stroustrup著 葉秉哲譯 p.117 4.9宣告)
在C++程式裡,每一個名字都只能有唯一一個定義之處
至於宣告,倒是可以有好多個,但都必須與它所指涉的個體型別相符

如果我重複宣告一個結構:
struct asdf;
struct asdf;
這不會有問題

可是如果我重複宣告一個整數:
int a;
int a;   // Line 9
編譯器出現訊息:
9 c:\dev-cpp\templates\新文件4.cpp   redeclaration of `int a'

我的理解不知道對不對:
宣告一個整數時
它會同時被定義(被編譯器定義嗎)
這定義包括它的初值(書上寫0,在我的PC上是575)
和它的記憶體位置

21
程式討論版 / bool的大小
« 於: 2005-06-21 23:45 »
我用c++顯示bool變數的大小:
cout << sizeof(bool) << endl;
結果是1 Bite
和char一樣大
可是bool只有0和1
應該只要一個位元,不用一個位元組吧?

22
引述: "elleryq"
http://home.kimo.com.tw/abc9250/LBEE_Round.htm


以上連結的文章提到:

浮點數本身就有誤差,再經過加減乘除後誤差就更大了,使得四捨五入已無法
正確的判斷!!!

浮點值愈大或愈小誤差就愈大,愈不容易得到正確的數值結果,誤差是浮動的
只要數值不是太大或太小,大致上結果不會差太多!!!

誤差怎麼來的呢?在PC內小點數的表示是近似而不是精確的,像0.2怎麼表示
成二進位呢?0.22、0.222、0.2222怎麼表示呢?只能採取近似的方法儲存到記憶體中。

PC怎麼處理浮點數
有這方面的資料嗎
謝謝

23
我的環境:
Win98
Compiler: gcc 2.95.3-6
IDE:      Bloodshed Software Dev-C++ 4.9.7.0

我想測試char的十六進位和八進位寫法:
   // ......
cout << "a\x123456h\12345";   // Line 29
   // ......
可以compile但編譯器訊息:
29 C:\Dev-Cpp\Templates\新文件1.cpp   [Warning] escape sequence out of range for character

也可以執行,結果如下:
aVhS45

\x123456(十六進位)代表'V'
\123(八進位)代表'S'

但我把Line 29改成:
cout << "a\x123456789h\12345";
編譯器訊息:
29 C:\Dev-Cpp\Templates\新文件1.cpp   hex escape out of range
29 C:\Dev-Cpp\Templates\新文件1.cpp   [Warning] escape sequence out of range for character

八進位字元會在超過三位數的時後自動截斷
十六進位字元卻不會?
為什麼

24
我照書上的指示
在 dos.h 裡面加入了以下文字:

struct date
{
    int     da_year;   // Year-1980
    char    da_day;    // Day of the month
    char    da_mon;    // Month(1=Jan)
};

struct time
{
    unsigned char    ti_min;    // Minutes
    unsigned char    ti_hour;   // Hours
    unsigned char    ti_hund;   // Hundreds of seconds
    unsigned char    ti_sec;    // Seconds
};

void getdate(struct date *datep);
void gettime(struct time *timep);

再將程式碼 compile
編譯器訊息如下:
C:\WINDOWS\TEMP\ccH5qggb.o     [Warning] In function `main':
[Linker error] undefined reference to `getdate(date *)'
[Linker error] undefined reference to `gettime(time *)'
我應該怎麼辦

25
C/C++程式設計討論區 / (C++)rand的問題
« 於: 2005-04-17 11:54 »
引述: "kenduest"

您在 linux 下面寫程式嗎 ? 有的話先翻一下 manpage。

man 3 rand
man 3 random
man 3 srandom

==

不好意思
引述: "asdf"
我的環境:
Win98
Compiler: gcc 2.95.3-6
IDE: Bloodshed Software Dev-C++ 4.9.7.0


26
C/C++程式設計討論區 / (C++)rand的問題
« 於: 2005-04-17 07:51 »
我照書上的方法製造亂數:
    cout << ((rand()/RAND_MAX)*10000) << endl;
    cout << ((rand()/RAND_MAX)*10000) << endl;
    cout << ((rand()/RAND_MAX)*10000) << endl;
    cout << ((rand()/RAND_MAX)*10000) < < endl;
    cout << ((rand()/RAND_MAX)*10000) << endl;
可是結果是:
0
0
0
0
0
我的RAND_MAX是32676
應該不至於結果全為0才對

27
C/C++程式設計討論區 / 結構指標
« 於: 2005-04-16 17:03 »
我照書上的指示,打了一個C++程式:

#include<iostream>
#include<stdlib.h>          // 使用system 就要引入這個檔案
const float pi = 3.141592653589793238462;

struct Circle{              // 宣告一個結構資料型態 Circle
    int r;                  // 資料成員
    float area();           // 宣告一個成員函數 area  
};

float Circle::area(){       // 定義成員函數 area 的內容
    return r*r*pi;
}



void main(void)
{
    Circle circle1 = {5};
    cout << "圓 circle1 的面積為:" << circle1.area() << endl;
   
   
    Circle *circle2 = &circle1;
    cout << "圓 circle2 的面積為:" << circle2->area() << endl;  // Line 31
   
   
    Circle *circle3 = new Circle;
    circle3->r = 5;
    cout << "圓 circle3 的面積為:" << circle3->area() << endl;
    delete circle3;
   

    system("PAUSE");
    return 0;
}

Line 31 的 circle2->area() 我看不懂
既然 circle2 是一個指標,用來取 circle1 的 area() 值
為什麼不是 *circle2::area()

28
引述: "elleryq"
放了與 iostream 相關的類別

iostream.h 和 iomanip.h 有什麼不同

29
我照書上的指示打了一段C++程式

我的環境:
Win98
Compiler: gcc 2.95.3-6
IDE:      Bloodshed Software Dev-C++ 4.9.7.0

#include<iostream>
#include<stdlib.h>          // 使用system 就要引入這個檔案
#include<dos.h>

void main(void)
{
    struct date current_date;
    getdate(&current_date);         // Line 22
    cout << "現在的日期是......";
    cout << current_date.da_year << "年 ";
    cout << int(current_date.da_mon) << "月 ";
    cout << int(current_date.da_day) << "日\n\n";


    system("PAUSE");
    return 0;
}

結果Compiler回應:
   C:\Dev-Cpp\Templates\新文件2.cpp    [Warning] In function `int main(...)':
22 C:\Dev-Cpp\Templates\新文件2.cpp   implicit declaration of function `int getdate(...)'

dos.h 裡面沒有定義getdate和gettime函式嗎?

30
C/C++程式設計討論區 / (C++)前置處理指令
« 於: 2005-04-16 12:08 »
我的環境:
Win98
Compiler: gcc 2.95.3-6
IDE:      Bloodshed Software Dev-C++ 4.9.7.0

我寫了一段前置處理指令:

#define PI 3.14159
#define AREA(r) ((r)*(r)*(PI))
#define MAX(a, b) ((a>b)?a:b)

#ifndef AREA(r)                // Line 15
#define AREA(r) ((r)*(r)*(PI))
#endif

#if !define AREA(r)            // Line 19
#define AREA(r) ((r)*(r)*(PI))
#endif

#ifndef PI
#define PI 3.14159
#endif

#if !define PI                 // Line 27
#define PI 3.14159
#endif

15 C:\WINDOWS\Desktop\新文件2.cpp   [Warning] garbage at end of `#ifndef' argument
19 C:\WINDOWS\Desktop\新文件2.cpp   parse error
27 C:\WINDOWS\Desktop\新文件2.cpp   Floating point numbers not allowed in #if expressions

為什麼會這樣?
尤其是 Line 27
為什麼 #if 指令不接受 Floating point numbers?

頁: [1] 2 3 4