c++基础 打卡一
一、面向对象的编程语言有的特点。
①面向对象的编程语言最大的特点是结构化程序,二结构化程序的设计思路是自顶向下、逐步求精;其程序化结构是按功能划分为若干个基本模块,这些模块形成一个树状结构;各模块之间的关系尽可能简单,在功能上相对独立;每个模块内部均是由顺序、选择和循环3个基本结构组成;其模块化实现的具体方法是子方法。
②其与以往各种编程语言有根本的不同,它设计的出发点是为了能更直接地描述客观世界中存在的事物以及它们之间的关系。
③面向对象的编程语言将客观事物看作具有属性和行为的对象,通过抽象找出同一类对象的共同属性(静态特征)和行为(动态特征),形成类。通过类的继承与多态可以很方便地实现代码重用,大大缩短了软件开发周期,并使得软件风格统一。
因此,面向对象的编程语言使程序能够比较直接地反应问题的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维来进行软件开发。C++语言是目前应用最广的面向对象的编程语言。
二、原码 反码 补码
1.原码
原码是指一个某进制的数转化为二进制后的用01表示的数字,数的绝对值与符号一起编码,称为原码。
如10进制的9转化为二进制为1001,因原码是连带符号一起表示,所以最前边留下一位来表示数的正负,0代表正,1代表负,所以9用二进制表示即为01001。那么十进制的-70用二进制如何表示,我们这里先讲述一下各进制数如何转化。
①我们可以先将各进制数转化为十进制数。
如一个n进制的数76.35,将其转化为十进制只需每位数乘以其所对应的权,所以n进制的76.35转化公式为7*n^1+6*n^0+3*n^(-1)+5*n^(n-2)。
②现在由十进制转化为n进制,用616转化为二进制为例。
616/2=308······0
308/2=154······0
154/2=77······0
77/2=38······1
38/2=19······1
19/2=9······1
9/2=4······1
4/2=2······0
2/2=1······0
1/2=0······1
所以616转化为二进制就是01001111000,那么-616的二进制数就是11001111000。
2.反码
顾名思义就是与原来的码原码反过来就是反码,但是要注意符号位是不变化的,如01001111000的反码就是00110000111,11001111000的反码就是10110000111。
3.补码
补码的计算方式很简单就是反码加一,在末尾加个一就变成了补码。
下面我们通过一段程序实现n进制转化为十进制。
#include<iostream> #include<cmath> #include<cstring> using namespace std; char s[10]; int len; int sum; int main() { int n;//定义转化的进制数 cin>>n; cin>>s;//输入这个数字 len=strlen(s); for(int i=0;i<len;i++) { sum+=(s[i]-'0')*(pow(n,len-i-1));//使用库函数pow求解幂函数 } cout<<sum<<endl; return 0; }
使用此程序即可将一个n进制的数转化为十进制的,此处我开出的范围较小,并没有包括将大于10进制的数转化为十进制的数,明天我将更新大于10进制的数转化为十进制以及任意进制的数转化为十进制后转化为二进制的方式。
溜了溜了~~~