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... 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...浮點數的表示範圍,浮點數所能表示的數值範圍和精度取決於什麼
c語言陣列長度的問題,C語言陣列長度的問題
為什麼說有的浮點數無法精確的表示