#include <stdioh> int main(void) { int a; printf("input a number:\n"); scanf("%d",&a); printf("%d的八进制表示为:%o\n",a,a); return 0; } 二进制和十六进制,,只需要把%o换为对应格式输出符就ok了。
用下面的程序可以测试c++中long long所占的位数。
//limitscpp——some integer limits
#include<iostream>
#include<climits>
int main()
{
using namespace std;
int n_int=INT_MAX;
short n_short=SHRT_MAX;
long n_long=LONG_MAX;
long long n_llong=LLONG_MAX;
cout<<"int is "<<sizeof(int)<<" bytes"<<endl;
cout<<"short is "<<sizeof n_short<<" bytes"<<endl;
cout<<"long is "<<sizeof n_long<<" bytes"<<endl;
cout<<"long long is "<<sizeof n_llong<<" bytes"<<endl;
cout<<endl;
cout<<"Maximum values:"<<endl;
cout<<"int: "<<n_int<<endl;
cout<<"short: "<<n_short<<endl;
cout<<"long: "<<n_long<<endl;
cout<<"long long: "<<n_llong<<endl<<endl;
cout<<"Minimum int value="<<INT_MIN<<endl;
cout<<"Bits per byte= "<<CHAR_BIT<<endl;
return 0;
}
看你的编译器是否支持 long long 型。
如果是 MS VC++ 60, long long 型 用 _int64 表示,输入格式 %I64d
别的编译器,按自己情况决定。
# include <stdioh>
void main()
{
_int64 x,y; // this is long long type in MS VC++ 60
double zz;
printf("enter the world's population: 6898758899:\n");
scanf("%I64d", &x);
printf("enter the US population: 310783781:\n");
scanf("%I64d", &y);
zz = (double) y / (double) x;
printf("%lf%%", zz1000); // %% will produce a single % mark
}
long m, n;
---------------------------------
实在不能理解你在测试什么或者寻找什么
你不会打算用printf来做强制转换吧,%d<--m发生了错误,所以影响了下个%d的转换(我分析的),你可以这样去测试
printf("%d,%d,%d,%d",m,1,n,1)可以看出来了吧,我不清楚TC是否有编译指令来控制错误也继续执行下去
我认为还是这么写printf("%d,%d",(int)m,(int)n)这样才对啊,先强制转换再做打印
VC,delphi,C++Builder中的int(integer)为signed 32-bit相当于TC的long所以输出50000 -60000没啥问题
而且正确输出应该是 -15536 -5536吧!
以上就是关于.编写程序,将从键盘上输入的十进制数(long 型)以二进制、八进制或十六进数的形式输出。全部的内容,包括:.编写程序,将从键盘上输入的十进制数(long 型)以二进制、八进制或十六进数的形式输出。、c++ long long 类型问题、编写一个C++程序,要求用longlong变量储存。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)