A. 整形 長整形 單精度 雙精度 浮點型分別是什麼意思
^^整形
從 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型數據(所有數字)回。存儲大小答為 4 個位元組。
長整形
從 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型數據(所有數字)。存儲大小為 8 個位元組。
單精度浮點數佔4位元組(32位)內存空間,其數值范圍為3.4E-38~3.4E+38,;
雙精度型佔8 個位元組(64位)內存空間,其數值范圍為1.7E-308~1.7E+308。
B. 整型和浮點型相減的問題
printf("%lf",double(12)-int(12));
有結果,是12.0.
double的12就是12.0
解釋為什麼是死循環-
浮點數是二進制存儲,而精確的浮點二進制存儲為,整數是2的+n次方的算術和,小數是2的-n次方的算術和.例如0.5、0.25、0.125此類小數可以精確表示,而諸如0.1、0.17這類小數就有誤差,具體體現在浮點數的位數波動,實際的存儲值可能編程了0.1000125、0.17000025之類.
double和int的算術運算向double對齊,所以r-int(r)是一個浮點數,顯然當r不是精確二進制小數時,表達式的結果含有小數位,不為double(0),會循環下去.當r較小的時候,表達式的結果僅為一個較小的純小數,當r增大到超過int的極值+2147483648後,(int)r會被截斷,r-int(r)從純小數陡增為極大的浮點數.死循環
你可以嘗試在你的設計中,把r=4.2356改成r=4.125,則不為死循環,可以得到預期結果
或者你改成r-(int)r>0.0001,這樣就只有當r的小數位超過10位的截斷問題.比如r=4.2356時還是無法計算,因為實際存儲位數超過10位,(int)r被截斷後表達式變成很大的浮點數,死循環.
我提供如下演算法.判斷標准比較類似>0.0001這種精確度的折中法,每次*10後判斷個位,連續3次個位為0則退出循環
#include "stdio.h"
main()
{
double r;scanf("%lf",&r);
double r1=(int)r;int m=0,n=0,g;
//g表示個位,r1結合r計算個位
while(1)
{
r*=10;
r1*=10;
g=int(r-r1);
//這樣提取個位比g=int(r)%10可表達的r大,後者r過大會被截斷
r1+=g;
m++;
if(!g)n++;
else n=0;
if(n==3)break;
}
printf("%lf %d",r1/1000,m-3);
}
要注意的是,結果的r1/1000和m-3中只有m有效,表示浮點數實際存儲的小數位,而r1在增大的過程中,可能由於位數過長而被截斷,成為誤差值.例如r=4.2356時,就只有m有效
C. 整型變數和浮點變數的意思和區別
整型是整來數的一部分所組成的集自合;浮點型是實數中的一部分組成的集合,帶小數位。
整型變數就是存放整數的變數,在Dos下,范圍是:-32668~32767;在Windows下,范圍是-2的32次冪到2的32次冪-1
浮點變數:表示以浮點形式表示實數的變數,其中也規定了佔用的空間量,位元組數;以及表示的范圍。
D. c語言中整形和浮點型是什麼意思
新華的嗎?哎,那是基本的數據類型,整型又分為
長整型
long好短整型short,能表回示的數據范圍不同,但必須都是答整數。float是
浮點型
。就是可以表示
帶小數
的數據,如1.5f而1.5是double類型,這些是基礎中的基礎。多看點書,多
敲點
代碼吧
E. C語言中整型,字元型,浮點型,和雙精度浮點型,詳解
整型,計算機中的一個基本的專業術語,指沒有小數部分的數據。整型可以用十進制,十六進制或八進制符號指定,前面可以加上可選的符號(- 或者 +)。包括整型常量和整型變數,整型變數又包括短整型、基本整型、長整型,它們都分為有符號和無符號兩種版本,是一種智能的計算方式。
字元型量包括字元常量和字元變數。字元串常量由一對雙引號括起的字元序列。字元變數的取值是字元常量,即單個字元。字元變數的類型說明符是char。字元變數類型說明的格式和書寫規則都與整型變數相同。
浮點型利用指數使小數點的位置可以根據需要而上下浮動,從而可以靈活地表達更大范圍的實數。
雙精度浮點型,此數據類型與單精度數據類型(float)相似,但精確度比float高,編譯時所佔的內存空間依不同的編譯器而有所不同,是double float數據類型,C/C++中表示實型變數的一種變數類型。
(5)整形短浮點擴展閱讀
雙精度浮點型類型數值可轉換到其他類型的整數或浮點數,反之亦然。雙精度浮點型常量的最後一個字元可加上「d」或「D」。其存儲格式與浮點型類似,最高位為符號位,次高11位為指數位,其次52位為尾數。
雙精度型就是雙精度浮點型,同數值型比,它能提供更高的數值精度,採用固定存儲長度的浮點數形式,每個雙精度浮點型數據佔8個位元組。與數值型數據不同,它的小數點位置是由輸入的數據值來決定的,並且只能用於表中的欄位。
F. 用短整型數如何實現浮點數的計算呀
float 至少需要 int 所以,short基本無法完成你的要求。
G. 如何把整形轉化為可以確定小數點位數的浮點型
精度
精度格式符來以「.」開自頭,後跟十進制整數。本項的意義是:如果輸出數字,則表示小數的位數;如果輸出的是字元,則表示輸出字元的個數;若實際位數大於所定義的精度數,則截去超過的部分。
#include "stdio.h"
#include "conio.h"
main()
{
printf("%.3d\n" , 5555);
getch();
printf("%.3f\n" , 0.88888);
getch();
printf("%.3f\n" , 0.9999);
getch();
printf("%.4s\n" , "this is a test!");
getch();
}
H. 一些整型、浮點型等之間的轉換問題
char實際上是8位無符號整型,如果你用vc的話 char實際上相當於
unsigned __int8,
一般來講 short == __int16, int == long == __int32
在vc里還有一種很少用到的超內長整 即 __int64
整數之間的相容互轉換是可以直接轉的。
但是如果是長轉短,則會忽略短整最高位數以上的數字。
I. 整型除以浮點型是什麼型
浮點型精度高於整形,因此整形數先自動被轉換成浮點型,再進行除法運算,最終結果也為浮點型
J. c語言中的字元型,短整型,整型,長整型,浮點型,都是什麼,具體格式都是什麼
char 字元型
short 短整型
int整形
long長整型
float(單精度),double(雙精度)浮點型