A. c語言整數的范圍
C語言整型,一般分為char類型和int類型,不同的類型取值范圍也不盡相同。在32位系統中:
char取值范圍:-128~127
unsigned char取值范圍:0~255
int取值范圍:-2147483648~2147483647
unsigned int取值范圍:0~4294967295
在c語言中可以通過C標准庫中的limits.h頭文件,來直接使用整型類型的最大值和最小值 。示例如下:
#include<stdio.h>
#include<limits>
intmain()
{
printf("char取值范圍:%d~%d ",CHAR_MIN,CHAR_MAX);
printf("unsignedchar取值范圍:%u~%u ",0,UCHAR_MAX);
printf("int取值范圍:%d~%d ",INT_MIN,INT_MAX);
printf("unsignedint取值范圍:%u~%u ",0,UINT_MAX);
return0;
}
B. C語言, 用戶輸入一個整數, 算出這個整數裡面最大的那個數,如用戶輸入1234321,則輸出4,拜託各位了.
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int max=0,m;
while(n>0)
{
m=n%10;
if (m>max) max=m;
n/=10;
}
printf("整數里最大的數為:%d\n",max);
}
C. 在C語言中,int類型存儲的最大的數是2^32,為什麼為什麼不是2^31
C語言中的int型在不同的機器上位數不同,其表示的數范圍也不同。鄙人假設你說的int型是32位。
C中的int型使用補碼表示,也就是32位補碼,最高位為符號位,1代表負,0代表正。一個int型變數存儲形式為x = { 符號位(1bit), 數值位(31bit) }。
一個int型變數最大值即32bit補碼能表示的正數最大值。1bit符號位為0,31bit數值位,每位可以有{0, 1}兩種組合,31位可以有2^31種組合,最大正數即數值位全為1時能取到:
二進制(0;111,1111,1111,1111,1111,1111,1111,1111) = 7FFFFFFFH,按等比數列計算結果為 2^0 + 2^1 + 2^2 + ... + 2^30 = [1*(1-2^31)] / (1-2) = 2^31 - 1。
綜上所述,32bit的int型表示的最大正整數既不是2^32,也不是2^31,是(2^31 - 1) = 2,147,483,648,大約21億。
D. C語言:計算最高位數字
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
while(n/10)n/=10;//除10,為零說明就只剩最高位了
printf("%d",n);
return 0;
}
E. 用c語言求一個短整型正整數中的最大數字
#include
<stdio.h>
#include
<math.h>
int
maxnum(int
a,int
b)
{
return
a>b?a:b;
}
void
main()
{
int
shortint
=
0
,temp
=
0;
printf("請輸入一個短整型數:
");
scanf("%d",&shortint);
if(shortint<0)
//如果輸入的是一個負數,取它的相反數
{
shortint
=
-1
*
shortint;
}
while(shortint/10>1)
//從個位往高位開始比較
{
temp
=
maxnum(temp
,
shortint%10);
//將temp與(shortint%10)中較大的數賦給temp
shortint
/=
10;
}
printf("max
number
in
this
shortint
is
:%d\n",temp);
}
F. c語言中int最大值是多少
int最大值,根據編譯器類型不同而變化。
1 對於16位編譯器,int佔16位(2位元組)。
int的最大值為32767.
2 對於32位和64位編譯器,int佔32位(4位元組)。
int的最大值為2147483647
3 可以通過列印sizeof(int)查看平台對應的int佔用位元組數。乘8後即為位數。
最高位為符號位,如位數為n,則最大值為
2^(n-1).