当前位置:首页 » 编程语言 » 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);

}