首页 > 编程语言 >c++基础 打卡1

c++基础 打卡1

时间:2023-04-10 21:13:12浏览次数:31  
标签:反码 进制 二进制 基础 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进制的数转化为十进制以及任意进制的数转化为十进制后转化为二进制的方式。

溜了溜了~~~

 

       

标签:反码,进制,二进制,基础,c++,转化,打卡,十进制,原码
From: https://www.cnblogs.com/zzqq1314/p/17304285.html

相关文章

  • C++关键字
    staticstatic(静态的)静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,使用时可改变其值。静态变量或静态函数,只有本文件内的代码才可访问它,它的名字(变量名或函数名)在其它文件中不可见。因此也称为"文件作用域"。在C++类的成员变量被声明为static(称......
  • 基础学习
    var,let和const区别共同点:都是用来声明变量 var:声明静态变量,可以在声明前引用const:声明常量,先声明后引用。初始的值不可更改let: 声明变量,先声明后引用。初始的值可更改......
  • 打卡一小时
    #include<iostream>#include<cmath>#include"Rectangle.h"usingnamespacestd;intmain(){   Rectanglerect;   rect.intiRectangle(2,3,20,10);   rect.move(3,2);   cout<<"Thedateofrect(x,y,w,h):"<&l......
  • C++
    #include<iostream>usingnamespacestd;intmain(){ intyear; boolisLeapYear; cout<<"Entertheyear:"; cin>>year; isLeapYear=((year%4==0&&year%100!=0)||(year%400==0)); if(isLeapYear) cout<<year<<"isa......
  • 57、K8S-监控机制-Prometheus-PromQL基础-运算符、聚合、功能函数
    Kubernetes学习目录1、数据基础1.1、时间序列1.1.1、介绍时间序列数据:按照时间顺序记录系统、设备状态变化的数据,每个数据称为一个样本;数据采集以特定的时间周期进行,因而,随着时间流逝,将这些样本数据记录下来,将生成一个离散的样本数据序列;该序列也称为向量(Vector);而将多个序......
  • 链表专题--基础知识
    参考链接:代码随想录链表是一种通过指针串联在一起的线性结构,每个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。链表的入口节点称为链表的头节点也就是head,链表示意图如下所示:  链表的类型单链表刚才说......
  • C++通讯录管理系统
    编辑器vs2019代码如下:#include<iostream>usingnamespacestd;#defineMAX1000//最大人数//联系人信息结构体structPerson{ stringm_name; //性别1男2女 intm_sex; intm_age; stringm_phone; stringm_addr;};//通讯录结构体structAddressbo......
  • 第三十九章 Linux基础常见报错及解决
    一、登录centos提示abrt-clistatustimedout1.引言最近登录linux系统,登录的时候非常慢,而且有时候还连不上,提示abrt-clistatustimedout,Linux系统版本使用centos7.8.2.症状1、ssh连接经常失败。2、登录的时候非常卡。3、登录成功后,会出现一个提示“abrt-clistatustim......
  • Java基础之RMI与JDNI机制
    一、RMI1.1概念RMI是用Java在JDK1.2中实现的,它大大增强了Java开发分布式应用的能力,Java本身对RMI规范的实现默认使用的是JRMP协议。而在Weblogic中对RMI规范的实现使用T3协议JRMP:JavaRemoteMessageProtocol,Java远程消息交换协议。这是运行在JavaRMI之下、TCP/IP之上的线路......
  • C++ 性能优化 - for循环条件中不要调用函数
    for循环条件中调用普通函数#include<iostream>#include<chrono>usingnamespacestd;longlongcount=0;constintN=10;intgetSize(){cout<<"getsize"<<endl;returnN+1;}voidtimeMeasure(void(*f)()){autobeg......