C语言中如何输出长整型数值

作者&投稿:昔才 (若有异议请与网页底部的电邮联系)
C语言中无符号长整型数的输入输出格式是什么~

以%开头的都是输出控制符。主要有%d、%u、%ld、%p。
1、%d它的意思是按十进制整型数据的实际长度输出。
2、%u输出无符号整型(unsigned)。输出无符号整型时也可以用 %d,这时是将无符号转换成有符号数,然后输出。

3、%ld它的意思是输出长整型数据。
4、%p 输出变量的内存地址。
扩展资料
1、八进制在C语言中,八进制的输出格式是 %o,八进制是以0为开头的数字,0后面的数字都要小于8,最大为7。
2、十六进制十六进制的输出格式是 %x,十六进制表示的数是0x12 ,这个0也是零。十六进制有点特殊的地方是1-9是纯数字,10-15是用A、B、C、D、E、F来表示的。
4、%d中的d并不表示integer,而是表示decimal(10进制)。

直接赋值就可以了,将整型转换为长整型,由于整型的位数小于等于长整型,所以转换的时候不会丢失数据,他可以自动转换。

在C/C++中,64为整型一直是一种没有确定规范的数据类型。现今主流的编译器中,对64为整型的支持也是标准不一,形态各异。一般来说,64位整型的定义方式有long long和__int64两种(VC还支持_int64),而输出到标准输出方式有printf(“%lld”,a),printf(“%I64d”,a),和cout << a三种方式。

本文讨论的是五种常用的C/C++编译器对64位整型的支持,这五种编译器分别是gcc(mingw32),g++(mingw32),gcc(linux i386),g++(linux i386),Microsoft Visual C++ 6.0。可惜的是,没有一种定义和输出方式组合,同时兼容这五种编译器。为彻底弄清不同编译器对64位整型,我写了程序对它们进行了评测,结果如下表。

上表中,正确指编译通过,运行完全正确;错误指编译虽然通过,但运行结果有误;无法编译指编译器根本不能编译完成。观察上表,我们可以发现以下几点:

long long定义方式可以用于gcc/g++,不受平台限制,但不能用于VC6.0。

__int64是Win32平台编译器64位长整型的定义方式,不能用于Linux。

“%lld”用于Linux i386平台编译器,”%I64d”用于Win32平台编译器。

cout只能用于C++编译,在VC6.0中,cout不支持64位长整型。

表中最后一行输出方式中的printint64()是我自己写的一个函数,可以看出,它的兼容性要好于其他所有的输出方式,它是一段这样的代码:

CPP

void printint64(long long a)


{


if (a<=100000000)


printf("%d
",a);


else


{


printf("%d",a/100000000);


printf("d
",a0000000);


}


}

这种写法的本质是把较大的64位整型拆分为两个32位整型,然后依次输出,低位的部分要补0。看似很笨的写法,效果如何?我把它和cout输出方式做了比较,因为它和cout都是C++支持跨平台的。首先printint64()和cout(不清空缓冲区)的运行结果是完全相同的,不会出现错误。我的试验是分别用两者输出1000000个随机数,实际结果是,printint64()在1.5s内跑完了程序,而cout需要2s。cout要稍慢一些,所以在输出大量数据时,要尽量避免使用。



在C语言中可以通过输出函数printf中的输出格式说明符来输出长整型数值。


具体格式可以参考如下程序段:

long int a=123456789;
printf("%ld", a);  // %ld表示按长整型的数据格式输出变量a,输出结果为123456789


int类型不支持 111111这么大的数,int型最多支持2的16次方大的数,也就是
-32768到32767之间,如果是无符号型,也就是unsign,则为0到65535
将你的变量定义语句改成
long int a=111,b=111111,sum;
应该就可以了!

int 改为 long试试

tc下面int好像是2个字节,超过3万多就溢出了了

printf("%d",sum);
应给是("%ld",sum)


C语言中如何输出长整型数值
首先,定义一个long int类型的变量,如long int a = 123456789; 这个变量存储了一个长整数值。接下来,使用printf函数进行输出,格式说明符"%ld"至关重要。这个说明符告诉函数以长整型(long int)的格式来打印变量a的值。当我们运行程序并打印变量a时,输出的结果将是123456789,完整地显示了长整型数值...

C语言中无符号长整型数的输入输出格式是什么?
C语言中无符号长整型数的输入输出格式%u。示例:intmain(){ unsignedinta;intb=-1;a=b;printf(“%u”,a);}

C语言中无符号长整型数的输入输出格式是什么
1、%d它的意思是按十进制整型数据的实际长度输出。2、%u输出无符号整型(unsigned)。输出无符号整型时也可以用 %d,这时是将无符号转换成有符号数,然后输出。3、%ld它的意思是输出长整型数据。4、%p 输出变量的内存地址。

c语言长整型怎么输出
在C语言中可以通过输出函数printf中的输出格式说明符来输出长整型数值。具体格式可以参考如下程序段:long int a=123456789;printf("%ld", a); \/\/ %ld表示按长整型的数据格式输出变量a,输出结果为123456789

C语言中如何输出长整型数值
long long定义方式可以用于gcc\/g++,不受平台限制,但不能用于VC6.0。__int64是Win32平台编译器64位长整型的定义方式,不能用于Linux。“%lld”用于Linux i386平台编译器,”%I64d”用于Win32平台编译器。cout只能用于C++编译,在VC6.0中,cout不支持64位长整型。表中最后一行输出方式中的printint64(...

C语言%ld 和%d输出有什么差别
C语言%ld用来输出长整型数。d用来输出整型数。因为格式符指明了输出指定的起始地址开始的若干个字节的内容(把它们作为长整型数或整型数来解释),所以,如果用错了对象,就会得出意想不到的结果。如果用%d来输出长整型数,就会只取它的头上几个字节,相当于对原来的长整型数取了模;而如果用%ld来输出...

c语言输出整形和字符有哪些符号?
⑵%md,m为指定的输出字段的宽度,数据位数小于m,左边补空格,若大于m,按实际长度输出 ⑶%ld,输出长整型数据(long)2.o格式符,以八进制输出整数(不带符号,他将符号位也作为八进制数的一部分了)⑴%o,参考%d的解释.⑵%lo,参考%ld的解释.⑶%mo,参考%md的解释.3.x,X格式符,以十六进制输出整数 也是...

如何用c语言首先输入一个整数,再输入一个长整数,输入时,两个整数之间用...
int a; long int b;scanf("%d%ld",&a,&b); printf("%d\\n%ld\\n",a,b);

c语言里输入的是整型,结果是长整型怎么输出如下面的求阶乘程序,8以上...
include <stdio.h> long factorial(int n){ { if(n==1)return(1);else return(n*factorial(n-1));} } void main(){ int i;scanf("%d",&i);printf("%ld\\n",factorial(i));\/\/ld为输入long类型 getch();}

C语言 长整型的输出问题
printf("c=%d",c);c语言中 输出数字需要一定的格式 d表示输出十进制的数 最后的c表示要输出的数 有不清楚的地方 轻补充问题 我再回答 谢谢

邛崃市19511974720: 长整型变量输出用%什么 -
度宇利巴: 在C语言中长整型变量的输出一般使用如下几个参数: 十进制格式输出用%ld. 十六进制格式输出用%lx. 八进制格式输出用%lo.

邛崃市19511974720: C语言如何计算长整数啊? -
度宇利巴: 把两个数字转换成字符储存到两个字符数组中,然后右对齐(位数少的前边补'0')然后用数组模拟加法运算 方法:比如123+999,先把两个数转加上'0'后存到字符数组中(转换成字符储存到字符数组的原因是因为字符数组有个字符串测...

邛崃市19511974720: c++ long long 型整数怎样输入,输出 -
度宇利巴: C语言中输出long long型数据使用%lld格式输入/输出的方法: 1、 long long 是C99标准对整型类型做的扩展,每个long long类型的变量占8字节,64位.其表示范围为-9223372036854775808~9223372036854775807. 2、long long 类型输出的...

邛崃市19511974720: C语言程序设计\长整数 -
度宇利巴: 我编给你,只有一个函数,主程序自己想. void chen (int a[],int b,int s[]) //a[]代表长整数, s[]是结果,下同 { int i,y,c=0; for (i=N-1;i>=M;i--) //N表示数组a的上限,M表示数组a的下限 { y=a[i]*b+c; //第i位乘普通整数 c=y/10; //c用来控制进位 s[i]=y%10 ...

邛崃市19511974720: c语言中怎样正确输出双长整形变量 -
度宇利巴: 用%lld,如下 #include<stdio.h>void main(){unsigned long long i;i=184467440737065520;printf("%d", sizeof(i));printf("\n%lld", i);}

邛崃市19511974720: C语言中无符号长整型数的输入输出格式是什么 -
度宇利巴: 输入输出标准格式是 %lu 数值范围不大时,输入输出也可用 %d %x %u %ld %lx 格式. unsigned long ulA = 0x70000000; // 数值范围不大 unsigned long ulB = 0x80000000; // 数值范围大 unsigned long ulC = 3; printf("%lu 0x%x %ld\n",ulA,ulA,...

邛崃市19511974720: C语言中如何输出长整型数值
度宇利巴: int 改为 long试试 tc下面int好像是2个字节,超过3万多就溢出了了

邛崃市19511974720: c语言中怎样输入一个很大的整数 -
度宇利巴: 可以利用字符数组来存放整数的各位数值,即将整数当成一串字符来输入. 如果要输入12345678901234567890,则定义一个char型数组a[20],将用户输入的整数当成一串字符存入字符数组a中. 具体实现方法可以参考如下程序段: char a[20]; scanf("%s", a); // 输入12345678901234567890,即可将该整数输入到字符数组a当中 // 则数组a中各元素值为a[0]='1', a[1]='2', a[2]='3', ....... , a[19]='0' // 在进行运算的时候将字符转换为数字即可(即a[i]-'0')

邛崃市19511974720: C语言里怎么把数字字符串12345转换为长整型字符12345,只用strlen函数和基本数据运算来编译函数fun(). -
度宇利巴: #include <stdio.h> long fun(char *s); int main(void) { printf("%ld\n",fun("123456")); return 0; } long fun(char *s) { long sign,n; for(n=0,sign=1;*s;++s) { if(*s=='-') { sign=-1; } else { n=n*10+*s-'0'; } } return sign*n; }

邛崃市19511974720: 程序设计C语言中关于长整型的输出
度宇利巴: 输入178 %ld输出应该也是178. 在gcc 3.4.5 Windows Vista 下结果

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网