C++学习记录-编码方法
C++学习记录-编码方法 编码方法 1.机器数 一个数在计算机中的二进制表示方式。机器数带有符号,存放在最高位。0表示正,1表示负。 例: 十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011。如果是 -3 ,就是 10000011。 2.真值 因为第一位是符号位,所以机器数的形式值就不等于真正的数值。例如上面的有符号数 10000011,其最高位1代表负,其真正数值是 -3 而不是形式值131(10000011转换成十进制等于131)。所以,为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。 3.原码 原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制: [+1]原 = 0000 0001 [ -1]原 = 1000 0001 4.反码 反码的表示方法是: 正数的反码是其本身 负数的反码是在其原码的基础上, 符号位不变,其余各个位取反. [+1] = [00000001]原 = [00000001]反 [- 1] = [10000001]原 =...
C++学习记录-字符数组与指针
C++学习记录:字符数组与指针 一、字符数组 语法: char arr[]={“…”}; 1.字符数组在定义时如果不写长度,会根据后面字符串的长度来设定 2.字符数组及其指针可以独立地输入,输出(会直接输入输出字符串) 示例: 12345678910char arr[]={"Hello"};//定义字符数组。char *a=arr;//该字符数组的指针。//赋值字符数组,通过数组名及指针名都可以直接赋值字符数组。cin>>arr;cin>>a;//同理,通过数组名和指针名都可以直接输出。cout<<arr;cout<<a; 二、一些小细节 1.一个char占一个字节,字符数组由于末尾有占位符\0,会多占一个字节。 但如果定义形式为 char a[]={‘h’,‘i’};则末尾不会有占位符,也不会多占一个字节。 2.打印...
C++学习记录-函数的默认参数
C++学习记录-函数的默认参数 语法:返回值类型 函数名(参数类型 参数名=默认值) 示例: 1void swap(int a=10,int b=20){...}//给参数设置默认值 作用:1.当你在调用函数时没传入参数,会按照默认的值为你计算 2.当你调用函数时传入了值,则你传入的值会替换默认值 注意: 1.如果函数在定义或声明时给某一个参数设置了默认值,则此参数及其后面的所有参数都要有默认值 2.如果函数在声明时有了默认值,则函数在实现的时候就不能再有默认值
C++学习记录-指针2
C++学习记录-指针2(指针与数组) 指针与一维数组 创建一个指针指向一维数组,此时指针指向的是一维数组的首地址。 示例: 123int arr[2]={1,2};int *p1=arr;//指针指向arr的首地址,即1的地址int *p2=&arr[1];//此时指针指向的是2的地址 利用指针遍历数组时,让指针++即可让指针向后移动一个位置,指向下一个数值,让指针+i即可让指针向后移动i个位置 示例: 12p1++;//此时p1指向2的地址p1+1//此时p1指向2的地址 下面附上指针与一维数组关系表格: 表现形式 表现形式 表现形式 表现形式 含义 &arr[0] arr p 一维数组arr的首地址 &arr[i] arr+i p+i 一维数组下标为i的元素地址 arr[0] *arr *p 一维数组第一个元素的值 a[i] *(arr+i) *(p+i) p[i] 一维数组下标为i的元素的值 指针与二维数组 1.二维数组其实是一维数组的集合 示例代码: 12345int...
C++学习记录-指针1
C++学习记录-指针1 指针的作用: 指针作为一个记录地址的变量,可以记录所指变量的地址,通过指针可以间接访问内存。 指针的定义: 数据类型 * 指针名字; 示例: 12int a=10;int *p=&a;//定义一个名为p的指针,指向a的地址。 指针的使用: *p :解引用操作 12cout<<p<<endl;//打印a的地址(十六进制)cout<<*p<<endl;//打印a的值(*p为解引用,即取a的值) 指针占用的内存大小: 在32位操作系统中,指针占用4个字节,不管是什么类型。 在64位操作系统中,指针占用8个字节,不管是什么类型。 常量指针与指针常量: 1.常量指针 const int *p :指针指向可以修改,但指针指向的值不可以修改。 示例: 12345int a=10;int b=20;const int *p=&a;p=&b;//正确,指针常量中指针的指向可以改变,指向的值不可以改变*p=20;//错误。 2.指针常量 int * const p...
C++学习记录-函数分文件的编写
C++学习记录-函数分文件的编写 有时候代码量过多时,可以通过编写分文件的方式将一些函数写在分文件里,再通过调用的方式使用。 函数的分文件应包含头文件(后缀名.h)及源文件(后缀名.cpp) 头文件应包含函数的声明 源文件应包含函数的主体及 #include”头文件.h“ 示例: 1.创建头文件edgnb.h 123#include<iostream>using namespace std;void edgnb(); 2.创建源文件edgnb.cpp 12345678910#include<iostream>#include"edgnb.h"//两个都要包含using namespace std;//写函数主体void edgnb(){ cout<<"7777777"<<endl;} 3.引用函数 注意:包含自己编写的头文件时要用"...
Java学习记录二-Java开发常用Dos命令二:Java程序的编译
Java学习记录二:用Dos命令编译运行 Java开发常用Dos命令二:Java程序的编译与运行 1.编译: javac 文件名.java (对该java源文件进行编译,之后会生成“类名.class”) 2.运行: java 类名 (运行) 示例: 12javac HelloWorld.java //对HelloWorld进行编译,之后会生成HelloWorld.classjava HelloWorld //运行HelloWorld.class
Java学习记录一-Java开发常用Dos命令
Java学习记录一:常用Dos命令 Java开发常用Dos命令一:进入目录并操控文件 **1.cd:**进入目录 例子: cd d: (进入d盘) cd music:进入music文件夹 其他附加指令: cd…(返回上一级) cd/(返回根目录) 示例: 1cd D: //进入D盘 2.dir: 查看当前所在目录的文件和文件夹 /s:查看当前目录及其子目录的文件和文件夹 /a:显示隐藏和非隐藏文件 /ah:只显示隐藏文件 /w:一行只显示五个(紧凑) /p:以分页显示 3.cls: 清屏 4.type 文件名: 显示文本文档的内容
C++学习记录算法篇-埃氏筛质数
C++学习记录算法篇 埃氏筛质数 埃氏筛质数法原理:质数的倍数都不是质数,因此将质数的倍数都筛除,剩下的都是质数。 示例: 假设要筛选从1到a(a>=2)内的所有质数: 1.先设所有数均为质数(利用布尔) 2.将1设为不是质数 3.从2开始,2的倍数均不是质数;再从3开始,3的倍数均不是质数 4.此时遇到4,4在筛除2的倍数时已经被筛除,则跳过4,从5开始,以此类推筛除所有非质数 5.3,4流程重复至根号内a即可 代码示例: 123456789101112131415161718192021//以a=100为例bool is_prime[101];for(int i=1;i<=100;i++){ is_prime[i]=true;}//先假设所有的数都是质数is_prime[1]=false;//1不是质数//开始筛选for(int i=2;i<=pow(100,0.5);i++){ if(is_prime[i]==true) { for(int j=2;j*i<=100;j++) ...
C++学习记录:引用基本语法
C++ 引用的基本语法 C++ 引用语法,关键字”&+别名“,相当与为变量起别名。示例如下: 示例: 12int a=10;int &c=a;//给变量起别名为c,以后a,c都是指同一块内存。 引用做函数的参数(引用传递): 将引用作为参数传递到函数中,可以起到和指针传递一样的效果,即形参会修饰实参。 12345678910void swap(int &a,int &b){ int temp=a; a=b; b=temp;}int main(){ int a=10,b=20; swap(a,b);}//此时a和b的值会互换. 引用有以下几点注意事项: 1.引用必须初始化 2.引用一旦初始化就不可更改 3.不要返回局部变量的引用。因为它存在栈区之中。 12int& test(){static int a=10;return a;}//可以返回静态变量的引用.test()=100;//返回静态变量的引用可以作为表达式的左值。 4.引用的本质是一个...





