C++语言程序设计 | 第一章绪论

每次学习后总有一种似懂非懂的感觉,估计只有输出才能在真正验证自己是否消化了吧。
本系列文章是关于学习清华大学郑莉教授的《C++语言程序设计》(第四版)一书的学习笔记,希望和各路大神一起学习。


计算机语言与汇编语言

  • 软件包括了使计算机运行所需的各种程序及其有关文档资料
  • 程序是指令的集合
  • 指令就是计算机考研识别的命令
  • 机器语言: 由计算机硬件系统可以识别的二进制指令组成的语言
  • 汇编语言:将机器指令映射为一些可以被人读懂的助记资料,如ADD,SUB
  • 高级语言:屏蔽了机器细节,提高语言的抽象层次,程序中可以采用具有一的含意的数据命名和容易理解的执行语句
  • 面向对象的语言C++:将客观事实看作具有属性和行为(或称服务)的对象,通过抽象找出同一类对象的共同属性(静态特征)和行为(动态特征)
  • 结构化程序设计的思路是:自顶向下,逐步求精;其程序结构是按功能划分为若干个基本模块,这些模块形成一个树状结构;各模块之间的关系尽可能简单,在功能上相对独立;每一块内部均是由顺序、选择和循环3种基本结构组成;其模块化实现的具体方法是使用子程序。
  • 面向对象方法:将数据及对数据操作的方法放在一起,作为一个相互依存、不可分离的整体——对象。对同类型对象抽象出共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。

信息的表示与存储

  • R进制转换为十进制
    各位数字与它的权相乘,其积相加,和数就是十进制数
  • 十进制转化成R进制
    十进制转R进制整数:十进制数连续地除以R,其余数即为相应R进制的各位系数。
    十进制转R进制小数:连续地乘以R,得到整数即组成R进制的数,“乘R取整”。
    注意:整数部分转转后是从低到高,小数是从高到低
    例题:二进制转十进制
#include "stdafx.h"
#include <iostream>
using namespace std;


int main()
{
	cout<<"请问要输入的二进制串的位数:";
	int n,m;
	cin>>n;
	cout<<"请输入位数小于10的二进制串:";
	cout<<endl;
	int a[10],s=0;
	for(int i=0;i<n;i++)
	{	
		cin>>a[i];
	}
	
	for(int i=0;i<n;i++)
	{	m=1;
		for(int j=1;j<=n-i-1;j++)
		{
			m*=2;
		}
		s+=a[i]*m;
	}

	cout<<"该10进制为:"<<s;
	return 0;
}
  • 二、八、十六进制相互转换

  • 信息的存储单位:位、字节、字
    位bit:度量数据的最小单位,表示1位二进制信息
    字节Byte:一个字节由8位二进制数字组成(1Byte=8bit),字节是信息存储种最常用的基本单位。计算机的内外存储器也是通常以字节来表示容量。
    K字节 KB=1024B
    M字节 MB=1024K
    G字节 GB=1024M

  • 字(word):字是位的组合,并作为一个独立的信息单位处理。字又称为计算机字,它的含义取决于机器的类型、字长和使用者的要求。常用的固定字长有8位、16位、32位。

  • 机器字长:指参加运算的寄存器所含的二进制数的位数,它代表了机器的精度,如32位、64位。

  • 二进制数的编码表示
    原码:符号-绝对值表示的编码,正符号为0,负符号为1,带小数表示时,小数点左边一位用作符号位。
    X=0.1011 X原=0.1011
    X=-0.1011 X原=1.1011
    原码的不足之处时对(±)0的表示不唯一,有二义性

  • 反码:负数反码符号位与原码相同(仍用1表示),其余各位取反。
    X=+1100110 X原=X反=1100110
    X=-1100110 X原=11100110 X反=10011001
    X=+0000000 X原=X反=00000000
    X=-0000000 X原=10000000 X反=11111111
    X=0.1011 X原=X反=0.1011
    X=-0.1011 X原=1.1011 X反=1.0100

  • 补码:正数的原码、反码、补码相同,负数的补码等于反码+1;0的补码表示一致了 都是000…0
    补码运算结果仍为补码,符号位可参与计算。

  • 定点数和浮点数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值