當前位置:首頁 » 編程語言 » c語言存整數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言存整數

發布時間: 2022-05-27 03:03:58

c語言中整數在內存中的儲存形式

無符號的整數和有符號的正整數都是用二進制原碼來表示,而負整數則是使用補碼來表示(補碼的演算法:負數的絕對值的原碼安位取反再加一)。舉個例子來說吧:
假設機器使用的是16位來存儲整數。
10 的存在形式是0000000000001010
-10的存在形式:
(1) |-10| = 10 ,10原碼為0000000000001010
(2)安位取反: 1111111111110101
(3)加1: 1111111111110110(最終結果)

Ⅱ C語言怎樣用數組存儲一個整數

#define Max 1024 //聲明一個足夠大的數組去存,樓上已經說得很對了

#include <stdio.h>
int main()
{
char str[Max]={0};

str = getchar(); //這就將輸入的數字存到字元中了

後面的轉化為整數就不需要了吧

}

Ⅲ 300位整數c語言怎麼存

採用補碼的形式來存儲。
在計算機內存中,整數一律採用補碼的形式來存儲。這意味著,當讀取整數時還要採用逆向的轉換,也就是將補碼轉換成原碼。

Ⅳ C語言中怎樣定義變數使其能夠保存16進制整數

可以通過int 或long int存儲,16進制整數說到底還是整數,16進制只是一種記數方式。例如,int x=0x16;

十六進制(hexadecimal)只是計算機中數據的一種表示方法,規則是「逢十六進一」,並不影響數據的存儲。任何數據在計算機中存儲的都只是二進制(0/1)數據,只是根據需要輸出時相應調整即可。

Ⅳ C語言中整數在內存中的儲存形式是什麼

整數在內存中是以補碼的形式存放,其中正整數的源碼反碼補碼形式相同;負整數的原碼反碼補碼形式不同,負數的反碼:符號位不動,其餘各位對原碼取反,他的補碼是它的反碼+1.
-8 <-------> 1000 0000 0000 1000 原碼
-8 <-------> 1111 1111 1111 0111 反碼
-8 <-------> 1111 1111 1111 1000 補碼

Ⅵ C語言整數應該用 () 型變數存儲

答案:int

Ⅶ C語言 整數在內存中的儲存形式

-8
是一個整數
在計算里表示一個有符號數的形式是,看開始的位元組最高位是多少,如果是0則為是正數,是1則為負數
負數的數值部分的表示方式是按補碼加1算出的。
如題:-8
則最高位是1
餘下的數值8的二進制是000
0000
0000
1000,進行求補為
111
1111
1111
0111,
因為計算機內存的表示方式是補碼的形式加1,所以最後的值的結果就是
111
1111
1111
1000
再加上負號位:
即:1111
1111
1111
1000

Ⅷ C語言,從鍵盤輸入一個整數,整數可能很大,需要用字元串來儲存整數

#include<stdio.h>
intmain()
{chars1[200],s2[100];
inti,j;
scanf("%s",s1);
for(i=0;s1[i];i++);
for(--i,j=0;i>=0;i-=2)
s2[j++]=s1[i];
s2[j]='';
printf("%s ",s2);
return0;
}

Ⅸ c語言中一個整數長度為1000時怎麼儲存

如果你是指長度達1000B的大數,則一般可以按字元型數組的形式來儲存,從數學角度來看它既是字元數組,又是一個小端模式的超長整型。
好好學習天天向上

Ⅹ c語言 用一維數組存放一個整數

估計題目你沒有看懂啊,程序其實不難,用字元串來做更簡單
void jian(char *a,char *b,char *c) //ab為減數,c為結果,你也可以abc為全局數組

{
char a1[100]={0},b1[100]={0},c1[100]={0}; //賦值0防干擾

int i,j,flag;
int la,lb,lc;
la=strlen(a);
lb=strlen(b);
lc=la>lb?la:lb;
strrev(a);
strrev(b);

if(strcmp(a,b)) //保證a1是大的樹

{
strcpy(a1,a);
strcpy(b1,b);
flag=1;

}
else
{
strcpy(a1,b);
strcpy(b1,a);
flag=0;

}
for(i=0;i<la;i++) //變成int

a1[i]=a[i]-48;
for(i=0;i<lb;i++)
b1[i]=b[i]-48;
c[0]=a[0]-b[0]; //先算個位

for(i=1;i<lc;i++)
{
if(c[i-1]<0) //借位

{
a[i]--;
c[i-1]+=10;

}
c[i]=a[i]-b[i];

}
while(c[lc-1]) //處理最高位的那些0

lc--;
for(i=0;i<lc;i++)
c1[i]=c[i]+48;
if(flag)
{
c[lc-1]='-';
lc++;

}

strrev(c1);
strcpy(c,c1);

}
main()
{
char x[100],y[100],z[100];
gets(x);
gets(b);
jian(x,y,z);
puts(z);

}