128=(10000000)2 =(200)8 =(80)16
1111=(10001010111)2 =(2127)8 =(457)16
1=(0001)2 =(1)8 =(1)16
12.125=(1100.001)2 =(14.1)8 =(C.2)16
练习2:答:+123=[01111011] -100=[10011100] +7=[00000111] -127=[10000001]
-8=[11111000] -111=[10010001] 0=[00000000] +19=[00010010]
练习3:答:
-100.0:
单精度 1 10000101 10010000000000000000000
双精度 1 100 0000 0101 1001000000000000000000000000000000000000000000000000
+12.125:
单精度 0 1000 0010 10000100000000000000000
双精度 0 100 0000 0010 1000010000000000000000000000000000000000000000000000
+1.0
单精度0 01111111 00000000000000000000000
双精度0 011 1111 1111 0000000000000000000000000000000000000000000000000000
+0.3
单精度0 0111 1101 00110011001100110011001
双精度0 011 1111 1101 0011001100110011001100110011001100110011001100110011
//------------------ Ex2.4 -----------------------------------
#include<iostream>
#include<cmath>
using namespace std;
int main()
{ double pi,x;
x=0.2;
pi=16*(x-pow(x,3)/3+pow(x,5)/5-pow(x,7)/7+pow(x,9)/9)-4/239;
cout.precision(17);
cout<<"pi="<<pi<<endl;
return 0;
}
//------------------ Ex2.7 -----------------------------------
#include<iostream>
#include<cmath>
using namespace std;
int main()
{ double a,b,c,x,y,pi=3.1415926;
cout<<"输入边长 边长 角度:"<<endl;
cin>>a>>b>>x;
y=x*pi/180;
c=sqrt(a*a+b*b-2*a*b*cos(y));
cout<<"第三边长度为"<<c<<endl;
return 0;
}
//------------------ Ex2.9 -----------------------------------
#include<iostream>
#include<cmath>
using namespace std;
int main()
{ int a;
cout<<"输入一个整数: ";
cin>>a;
if (a<-999||a>999){cout<<a<<"不是一个三位的偶数"<<endl;}
else if (a<100&&a>-100) {cout<<a<<"不是一个三位的偶数"<<endl;}
else if (a%2==0)
{cout<<a<<"是一个三位的偶数"<<endl;}
else {cout<<a<<"不是一个三位的偶数"<<endl;}
return 0;
}
//------------------ Ex2.11 -----------------------------------
#include<iostream>
#include<cmath>
using namespace std;
int main()
{ double a,b,c;
cout<<"输入三个数:a b c"<<endl;
cin>>a>>b>>c;
if (a<=b) {b=a;}
else {b=b;}
if (b<=c) {c=b;}
else {c=c;}
cout<<"最小的数:"<<c<<endl;
return 0;
}
//------------------ Ex2.13 -----------------------------------
while语句:
#include<iostream>
using namespace std;
int main()
{ int i,s;
s=1;i=1;
while(i<=10)
{s=s*i;
i=i+1;
}
cout<<"10!="<<s<<endl;
return 0;
}
for语句:
#include<iostream>
using namespace std;
int main()
{ int i,s;
s=1;
for(i=1;i<=10;i++)
{s=s*i;}
cout<<"10!="<<s<<endl;
return 0;
}
(结果:3628800)
//------------------ Ex2.14 -----------------------------------
while语句:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{ double i,s,e;
e=1;i=2;s=1;
while(i<=20)
{e=e+i/(s+i);s=i;i=i+1;}
cout<<"1+2/3+…(前二十项和)="<<e<<endl;
return 0;
}
for语句:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{ double i,s,e;
e=1;s=1;
for(i=2;i<=20;i++)
{e=e+i/(s+i);s=i;}
cout<<"1+2/3+…(前二十项和)="<<e<<endl;
return 0;
}
(结果:11.2398)
//------------------ Ex2.16 -----------------------------------
判断等于是==,一个=只是赋值而已
#include<iostream>
#include<cmath>
using namespace std;
int main()
{ long int i,n,F1,F2,Fn;
cout<<"输入一个正整数:";
cin>>n;
F1=1;F2=1;
if (n==1)
{cout<<"第"<<n<<"项斐波那契数是"<<F1<<endl;}
else if (n==2)
{cout<<"第"<<n<<"项斐波那契数是"<<F2<<endl;}
else
for(i=3;i<=n;i++)
{Fn=F1+F2;F1=F2;F2=Fn;}
cout<<"第"<<n<<"项斐波那契数是"<<Fn<<endl;
return 0;
}
总是从很小的事就上纲上线,下次我尽量不这样做。