首頁  >  文章  >  Java  >  java和c/c++ 資料類型長度的比較

java和c/c++ 資料類型長度的比較

高洛峰
高洛峰原創
2017-01-22 10:35:091240瀏覽

1. c語言中的整數類型有char, short, int, long等幾種, 以下是C語言對每種資料型別長度的規定: 
(a). short和long類型的長度不相同 
(b ). int型別通常同特定機器的物理字長相同 
(c). short通常是16bits, int通常是16bits or 32bits每種編譯器可以根據硬體的不同自由確定, 但是short和int必須最少是16bits,而long類型必須最少是32bits, 且short必須比int和long類型短。

2. sizeof() 運算子傳回的是一種資料型別中所包含的位元組數(bytes), AnsiC規定sizeof(char)必須傳回1,當sizeof作用於陣列時, 傳回的是陣列中所有成員所佔的位元組數(注意並不是數組中成員的個數), 當sizeof()作用於結構體和公用體時,返回的不僅僅是數據成員總的字節數, 還包括編譯器為了實現位元組對其而填充的那些位元組。

以前寫程式也隱隱約約的懂得這些規則,但是一直以為char類型必須是8bits的,但是最近做了一個嵌入式DSP項目,編譯器手冊上明明寫著char類型就是16bits的,無奈翻出"The C Programming Language"一查才發現ANSI C對於char類型的長度並沒有作硬性規定。以前寫程式不太注意資料類型的可攜性, 這次專案中用到的以前的程式碼都要重新檢查資料類型長度的問題。

C++資料型別長度問題:

一、字節和字長 
字節,八位就是一個字節,是固定概念。字長是指電腦一次能處理的二進位資料的長度,是一個非固定的概念。例如,8位元計算機的字長為8,即一個位元組,32位元計算機的位元長位元32,即4個位元組,同理,64位元計算機的位元長為64,即8位元組。

二、C++中的資料型別 
1、字元型資料char,此型別總是一個位元組長,即8位。 
2、整形int、短整型short和長整形long。通常int為一個字長,short為半個字長,long為一個或2個字長(在32位元機器中為一個字長)。

3、浮點型float、雙精度double、和長雙精度long double,分別表示單精度浮點數 雙精度浮點數和擴展精度的浮點數值。典型情況下,float 為一個字,double是兩個字,long double為三或四個字。

Java中各資料類型的長度:

boolean 這個試編譯環境而定
byte  1個字節
short 2個位元組
char  2個位元組
int   4個位元組
char  2個位元組
int   4個位元組
long 2個位元組

float 4個位元組

double 8個位元組

🎜更多java和c/c++ 資料類型長度的比較相關文章請關注PHP中文網! 🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn