负数的原码、反码和补码 计算机的数据运算全都是以补码加法形式进行的,例如6-5,计算机会转换为6和(-5)的补码加法运算,其实补码通过上述的第二种方法还原就能直接得出原来的数。从第二个表格可以看出,除了-0以外,其他数的补码不会造成位溢出,因为(去了符号位的原码)+(去了符号位的补码)=(最高位所对应的无符号十进制数),也就是除最高位的补码所对应的十进制数总比最高位所对应的十进制数小。原理进行的,计算机内部所存储的信息都是用二进制来记录和表示的,而且所有的二进制数据都是以补码的方式存储的。负数在计算机中都是以补码的形式存在的。
win10 打开MathType右下角服务器的方法 This dialog is displayed when MathType is started in “server mode”. Normally when you edit equations using the Insert Object command, use the Insert Equation toolbar button, or double-click an equation in your word processor or other OLE-compatible applica
C++运算符重载 赋值运算是指已经存在了两个对象,把其中一个对象的成员变量的值赋给另一个对象的成员变量。对于+号运算符来说,类外运算符重载和运算符重载同时存在时,系统会不知道调用哪一个,所以要去掉类外运算符重载。为了解决这个问题,C++规定,在重载++或–时,允许写一个增加了int形参的版本,编译器处理后置表达式时,成员函数版本的重载运算符函数:形参个数比运算符的操作数个数少一个,其中一个操作数隐式传递了调用对象。如果运算符重载既可以是成员函数也可以是全局函数,应该优先考虑成员函数,这样更符合运算符重载的初衷。
字符集介绍 ASCII字符集:只有英文、数字、符号等,占一个字节。GBK字符集:汉字只占2个字节,英文、数字占一个字节。unicode字符集:目前使用较多的编码规则是utf-8(也称utf-8字符集),汉字占3个字节,英文、数字占1个字节。字符编码时使用的字符集,和解码时使用的字符集必须一致,否则会乱码。英文数字一般不会乱码,因为很多字符集都兼容了ASCII编码。编码:把字符按照指定字符集编码成字节。解码:把字节按照指定字符集解码成字符。
C++内存对齐 现代计算机中内存空间都是按照字节(byte)进行划分的,所以从理论上讲对于任何类型的变量访问都可以从任意地址开始,但是在实际情况中,在访问特定类型变量的时候经常在特定的内存地址访问,所以这就需要把各种类型数据按照一定的规则在空间上排列,而不是按照顺序一个接一个的排放,这种就称为内存对齐。
C++类的大小 4.一个类中只要有虚成员函数,且无论有多少个虚成员函数,都会开辟一块内存来存放虚函数表指针,这个指针的大小等于计算机的位数/1字节位数。6.即使父类是空类,只要将析构函数声明为虚函数,就会产生一个虚函数表指针。1.空类占用一个字节。若父类为空类,创建子类对象时,父类不占用子类空间。7.类也会遵循结构体中字节对齐的规则。2.构造函数和析构函数不占用类空间。5.子类和父类共用虚函数表指针。8.静态成员不占用类的空间大小。
面向对象的三大特性之多态 多态的简单定义为同一种操作在作用于不同的对象时有不同的结果。在C++中分为静态多态和动态多态。子类和父类的成员变量相同或者函数名相同,子类隐藏父类的对应成员。重定义实际上是同名隐藏:在派生类中定义基类中存在的函数,派生类对象就只能访问自己的函数,而不能访问基类的同名函数(除非进行作用域扩展声明)重定义同样可以增强程序的可读性,减少函数名的数量,更重要的是它可以让相同的方法在不同派生类中有不同的实现避免了在基类中过多的存在重载。
linux下C++与数据库连接 大家学完了MYSQL数据库应该有个疑惑:我们学SQL语句是为了保存一些用户的信息,但是大部分教程都只是讲解SQL语句,而没有讲解如何将SQL语句与编程语言相连接,那如何将我们所学的数据库与编程语言连接呢?其实主流的编程语言如C/C++,java,python等都有与数据库相连的API,我们可以通过相关的API文档来学习编程语言和MYSQL数据库连接。下面来介绍几个小demo来入门Linux下C++与MYSQL的编程。提示:以下是本篇文章正文内容,下面案例可供参考。
Linux终端下载资源的办法 1.wget是类UNIX系统中的一个命令行下载器。可以使用wget下载一个文件、多个文件、整个目录或者网页。–page-requisites表示下载额外的东西,如样式表,使页面在离线状态下看起来更好。它将在你当前所在的目录下以原始名下载文件。(可用pwd查看当前目录)–convert-links表示使内部连接指向下载的资源,而不是网站。4.使用wget下载多个文件。3.使用wget下载文件。
Linux安装MySQL数据库 使用临时密码登录的MySQL不能操作,需要修改密码。但是密码的默认加密规则太复杂,使用过于复杂的密码日后登录比较麻烦,在修改默认密码规则前需要先把随机生成的密码改了,然后才能修改密码规则。1.1这里有两种方法下载,一种是通过windows下载,然后将安装包上传至linux系统。在Enter password:后面把Ml***Z6Uu那一串密码粘上去,就成功登录MySQL了.‘root’@'%'中的root表示用户名(可以自己定义),@表示“在”,%表示所有主机。旧版本的数据库就卸载完成了。
右值引用的作用 什么是左值?就是一个指向某一块内存空间的表达式或者变量,可以取地址。什么是右值?右值就是非左值的表达式一般来说,我们给一个对象赋值的时候,会把源对象进行一个复制,然后把源对象的副本赋值给目的对象,之后销毁源对象。有了移动语义之后,就可以避免没有必要的复制和销毁操作,直接把源对象移动给目的对象,这就是移动语义。
vector的resize()和reserve() 当resize()的参数大于size时,调用resize()后size等resize()的参数,如果没有指明初始值,新增元素的值按照默认值分配。capacity:该值在容器初始化时赋值,指的是容器能够容纳的最大的元素的个数。当reserve()的参数大于capcity时,reserve()后的capacity等于reserve()的参数。当resize()的参数小于size时,调用resize()后的size等于resize()的参数。size:指的是此时容器中实际的元素个数。