求浮點數陣列長度的函式是什麼

2025-03-13 02:50:20 字數 4344 閱讀 5573

1樓:沫沫容

package ;

對數字和位元組進行轉換。

基礎知識:假設資料儲存是以大端模式儲存納納的:

byte: 位元組型別 佔8位二進位 00000000

char: 字元型別 佔2個位元組 16位二進位 byte[0] byte[1]

int : 整數型別 佔4個位元組 32位二進位 byte[0] byte[1] byte[2] byte[3]

long: 長整數型別 佔8個位元組 64位二進位 byte[0] byte[1] byte[2] byte[3] byte[4] byte[5]

byte[6] byte[7]

float: 浮點數(小數) 佔4個此茄態位元組 32位二進位 byte[0] byte[1] byte[2] byte[3]

double: 雙精度浮點數(小數) 佔8個位元組 64位二進位 byte[0] byte[1] byte[2] byte[3] byte[4]

byte[5] byte[6] byte[7]

public class numberbytes {

將乙個2位位元組陣列轉換為char字元。

注意,函式中不會森源對位元組陣列長度進行判斷,請自行保證傳入引數的正確性。

param b

位元組陣列。return char字元。

public static char bytestochar(byte b) {

char c = char) (b[0] <8) &0xff00l);

c |=char) (b[1] &0xffl);

return c;

c++ 陣列用指標方式傳遞給函式以後如何獲得陣列的長度?

2樓:網友

將陣列作為乙個引數傳出去,那麼他就會「退化」成乙個指標型別,進而失去「陣列的屬性」。(這裡的陣列不是new出來的)

這裡的「屬性」指的是陣列可以使用sizeof(array)/sizeof(array[0])的方法獲得其長度的方法的屬性。

要在乙個函式中得到乙個陣列的長度,你應該這個陣列作為乙個引用傳出去,那樣,就能用sizeof(array)/sizeof(array[0])的方法獲得長度了。

3樓:

無法獲得,必須再傳乙個長度進去。

只知道陣列的指標,用什麼函式求陣列的長度

4樓:清影星河

答案是:

不可能!在c語言最基礎的教程(譚浩強的)中都提到了要傳陣列的話,必須要長度引數。

函式int f(int *t)

我們只知道以下資訊:

1 函式叫 f

2 函式有乙個引數,是 int* 型別。

3 函式返回值為 int 型別。

這三個資訊已經是函式的全部資訊了,不可能得出樓主想要的東東^_^

5樓:匿名使用者

不行的。因為指標退化是c/c++的乙個特性。所以我們通常都必須傳遞乙個大小引數。

你說的那個方法換湯不換藥,本質還是跟傳遞乙個多餘引數相同,只不過把這個引數整合到了乙個結構體中使得可以一次搞定罷了。

6樓:

如果是 int t[10] 定義形式。

可以用 int len = sizeof(t)/sizeof(int);得到長度。

int *t 好像沒有辦法。。。

7樓:網友

sizeof()試一下,如果不行就只能是自己寫了。

你也可以寫乙個這樣的函式放到某乙個標頭檔案中以後用著方便。

c++ 如果乙個功能函式引數是乙個陣列,陣列長度怎麼處理好

8樓:不是很無知

你可以傳引數,也可以用特殊的陣列元素標誌。

比如你的陣列是char txt[10];最後以0結束,就可以在函式里用這個結束標誌判斷,沒有的話就傳個長度進去。

9樓:網友

sizeof(arr)/sizeof(int)可以確定陣列長度。

10樓:鳥人和天使

把陣列長度也傳進去,因為陣列名在傳給函式時會弱化為指標!提示你,就是說你如果在函式內用sizeof(a)的話肯定會得到乙個4,因為弱化為指標!

這樣也就不知道長度了!

兩種方法!hanshu(int a,int n);

2.在陣列末尾手動新增乙個『\0』;然後在函式里用strlen計算陣列長度!

11樓:網友

你可以通過標準庫函式中的sizeof()函式來判斷陣列的長度。如i = sizeof(a[10])

12樓:網友

如果陣列作為函式的引數,這個引數將被退化為指標,這樣的話陣列的長度就無從得知了,因此必須同時傳入乙個表示代表陣列大小的引數。

不過也可以使用陣列的引用來傳參。

void hanshu(int (&a)[11])在函式中就可以直接用sizeof()求陣列大小了另外,加上乙個結束符也是乙個方法,不過將對存入其中的資料產生限制(至少不能為那個結束符了)

在c++中有直接求陣列長度的函式麼?

13樓:網友

int a[10];

sizeof(a) 就是陣列所佔用的位元組數 也就是長度 在32位機器上是40

如果你要求的是當前陣列中元素的個數,可以用個數 = sizeof(a)/sizeof(int)如果是 char a[10] 就是 sizeof(a)/sizeof(char)

希望我說的對你有幫助。

14樓:泥來

c++裡面是有直接求陣列長度的函式的。

int num[3];

cout <

關於處理陣列長度函式的問題,自己寫了乙個計算陣列長度的函式,出了點兒問題。

15樓:網友

array[count]!=0' 很明顯你傳遞的是整型陣列,因為你帶了int,很明顯你判斷時,把它當做字元,因為你用了『』,現在知道哪有問題了吧。

16樓:網友

可不可以說的詳細些,是字串陣列嗎?如果是字串資料迴圈判斷是否是'\0'結束就可以啦,不過它有現成函式的,int strlen(char *)

17樓:匿名使用者

字串陣列是以「\0」結尾的,陣列元素為int 的不是以『\0』結尾。

你寫了int array就是說陣列元素是int吧。那用'\0'就沒意義了。

不知道你的6是怎麼來的。

c++傳陣列後怎麼在函式內計算陣列長度?

18樓:網友

c/c++會將陣列(形參)作為指標來傳遞,絕對沒有關於陣列長度的任何資訊,所以,當形參是陣列時,通常還有乙個引數來傳遞陣列的長度,比如sort(int a, int len);,a是int型陣列,len則為陣列a的長度,但形參是字串時,則不需要傳遞陣列長度,這是因為,字串是以'\0'結束的,函式通過檢測'\0'來決定如何使用或處理字串引數。

19樓:網友

sizeof(x)=4指標的大小都是4

當陣列作為函式的引數進行傳遞時,該陣列自動退化為同型別的指標,指向陣列的第乙個元素。

20樓:匿名使用者

沒辦法,而且沒必要,已經由系統產生的陣列,長度系統自然知道,還算來幹什麼~

vb中有獲取陣列的長度函式嗎?

21樓:

ubound返回陣列上限,lbound返回下限。

一般預設的陣列是從0開始的,長度就是ubound(a)+1,如果再專門搞個函式獲取長度的話有點多餘。

22樓:

ubound 函式。返回乙個 long 型資料,其值為指定的陣列維可用的最大下標。

23樓:網友

設有一維陣列a.則的長度len為:

len=ubound(a) -lbound(a) +1如果a為二維陣列,求其第一維長度,則用。

len=ubound(a,1) -lbound(a,1) +1來求。

同理,求第二維長度的公式為:

len=ubound(a,2) -lbound(a,2) +1

24樓:網友

dim a(2) '先宣告陣列a

dim length '用length表示陣列的長度length = ubound(a) -lbound(a) +1msgbox length

浮點數的表示範圍,浮點數所能表示的數值範圍和精度取決於什麼

最常用的32位規格化浮點數的表示範圍是 前提條件 階碼用移碼錶示,尾數用補碼錶示,每1位是符號位,階碼佔8位,尾數佔23位 可表示的最大正數 1 2 23 2 127最小正數 2 129 最大負數 2 129 最小負數 2 127 呵呵,不同的編譯環境下,浮點數的範圍是不同的 目前多數系統都按照ie...

c語言陣列長度的問題,C語言陣列長度的問題

strlen函式並非用來求陣列長度,而是求字串中有效字元長度。您的定義 a 3 看上去是一個char型別陣列,但同時a也可以是一個字串,內容為 abc.之所以後面省略,是因為您的字串沒有結尾符 0 即這個字串在定義時未封閉。這導致 c 後面的內容被strlen函式計入字串長度。所以它在您的某一次執行...

為什麼說有的浮點數無法精確的表示

比如儲存10進位制0.1,為什麼無法保證每一臺機子對其儲存的值不一樣呢?0.10.2 0 0.2 0.4 0 0.4 0.8 0 0.8 1.6 1 0.6 1.2 1 0.2 0.4 0 0.4 0.8 0 0.8 1.6 1 0.6 1.2 1 0.2 二進位制 0.0001 1001 1001...