自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 Python整数/整数得浮点数,有专门的整除运算符//

2020-01-21 22:14:37 359

原创 Python逻辑运算支持短路运算,比如不会执行False and 1/0>0;的除零运算,便不会报错!

Python逻辑运算支持短路运算,比如不会执行False and 1/0>0;的除零运算,便不会报错!这一点同Java

2020-01-21 20:41:50 326

原创 C++输出流打印string;时遇到可变长字符串string的0元素将停止输出,也是0结束符么?

string mystr4("abc"); mystr4[1] = 0; cout << mystr4 << endl; //将只输出'a',因为mystr4[1]的0作为了终止字符,并且ASCII码0值是不可打印字符 const char* mystr5 = "def"; //底层const指针 可以改指向但不能通过指针改值 char mystr6[] = "de...

2020-01-21 15:25:00 374

转载 求负整数补码不用对原码+1进位的技巧

参考自[关于求负数补码](https://www.cnblogs.com/chiweiming/p/8932140.html)正整数的补码、反码均同其原码。负整数的补码是其反码(保留符号位,其他位取反)再+1,这将涉及进位操作。一个求负整数补码的技巧是:1、求负数绝对值的原码;2、从原码的最后一位往前数,当遇到第一个1时停在此位置;3、将第一个1位前面的位全部取反。对signed cha...

2020-01-21 11:54:13 706

原创 C++正则表达式

C++正则表达式整理:"[^c]" 匹配任意不是'c'的单个字符 "[[:alpha:]]" 匹配任意单个字母 "*" 零个或多个 "+" 一个或多个 "[[:alpha:]]*" 零个或多个字母 "[[:alpha:]]+" 一个或多个字母 s...

2020-01-20 21:22:02 764

原创 栈内存分配并不是连续紧凑的

char mystr4[] = "There must be change"; //虽然有个'='但不是赋值语句,而是执行了初始化 // 并由初始化确定了数组大小 mystr4[0] = 'H'; //可变数组 数组元素可以修改 cout << "1:mystr4[]:"<<mystr...

2020-01-20 10:43:22 1850

翻译 C++内存中程序的剖析

转载自科罗拉多州大神的技术博客,有很清晰的图示添加链接描述#1.C++内存中程序的剖析内存管理是操作系统的核心。这对于编程和系统管理都至关重要,这篇文章介绍了程序在内存中的布局方式。多任务操作系统的每个进程都在其自己的内存沙箱中运行。此沙箱是虚拟地址空间。在32位模式下,它始终是4GB的内存地址块,这些虚拟地址通过页表映射到物理内存,这些页表由操作系统内核维护并由处理器查询。每个进程都有自己...

2020-01-19 22:33:58 198

原创 求整数二进制表示、16进制表示的小算法

1、利用移位>>操作符和与&操作符 直接操作二进制位数vector<int> GetBinaryOfInte(int n){ vector<int> arr; for(int i=31;i>=0;i--){ arr.push_back(n>>i&1); //取右移i个二进制位后的二进制值 } ...

2020-01-18 20:03:39 252 2

原创 C++链表转置,切记在将传入根节点->pnext节点地址保存后要将根节点->pnext置nullptr!

自以为简单的算法一定要写出来运行后没问题才敢说简单,动脑不如动手!#include <iostream>#include <vector>using namespace std;struct ListNode{ int val; ListNode *next; ListNode(int v):val(v),next(nullptr){};}...

2020-01-18 17:37:13 894

原创 C++引用lib静态库的两种方式

当项目C调用项目A的函数或使用项目A的全局变量,变量虽然可以用写文件再读文件的方式“传递”,但诸如此类需求非常多,频繁读写文件是很low的法子,也不符合全栈开发的理念。也不能将项目A中该函数及其所依赖部分再到项目B中拷贝一份(.h与.cpp),这不符合代码重用原则,此时链接项目A的生成lib静态库文件或生成dll动态库文件是不错的选择,其中dll项目也可链接lib静态库文件,并且链接dll动态库文...

2020-01-17 21:17:15 10228

原创 自己写的可以输出可打印ASCII字符的LZW压缩算法,很简单

参考:1、深入解析数据压缩算法添加链接描述2、超级简单的数据压缩算法—LZW算法添加链接描述3、无损数据压缩LZW算法——C++实现添加链接描述void Compress(string strIn,int nBegin,vector<int>& vcode){ //输入字符串strIn和一个ASCII码值最大值+1还要大的大数 用于标识非单个字符的"码值" //输...

2020-01-14 14:59:02 494

转载 Java常量池与方法区

转载自:1、添加链接描述 Java内存区域介绍(附带JDK1.8后方法区内存结构的变化2、添加链接描述3、添加链接描述4、添加链接描述 从字节码分析了JDK7中常量池放到堆中后的内存结构1、运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。根据《Java虚拟机规范(JavaSE7版)》的规定,java虚拟机所管理的内存将会包括以下几个...

2020-01-11 20:29:53 1476

转载 char *str = "abc"的字符串存储在只读数据区,尝试修改它将会导致崩溃

在微信公众号《编程珠玑》看到一篇文章讲“解引用NULL为什么导致程序挂死”:添加链接描述程序运行起来后,会映射到一个虚拟地址空间。对于32位程序,是一个4G的大小(一个32位程序,能用到的内存不过4G):内核空间:大小与操作系统有关,对于Linux系统,32位程序的内核空间默认为1G(可调);栈:Linux下默认为8M,可调。具有自动存储器的变量存储在栈中。堆:不会超过3G,也就是voi...

2020-01-09 19:58:08 419

原创 Java System.out.println(Integer.toBinaryString(var))输出二进制数补码

正数的原码、补码均是其本身;负数的补码是原码的符号位不变,其他位取反,补码是原码+1;Java.out.println(Integer.toBinaryString(var)) 打印的是实参的二进制补码...

2020-01-09 08:43:12 920

转载 C++存储与解读整数时的大端序小端序问题

之前在“编程珠玑”公众号中看过一篇《谈一谈字节序的问题》,首先附上链接:添加链接描述我在64位处理器上使用VS2019写一个简单的Win32控制台程序用来探究字节序问题:...

2020-01-08 22:12:50 225

原创 C++的sizeof()与strlen()

C++的sizeof()是运算符函数,在编译时就能并且已经确定了其参数(内置类型或自定义类型的变量或数组类型)所占字节数,strlen()是取字符串char cstr2[16]; //在定义时就该为'\0'终止符留下位置 cstr2[5] = '\0'; cout << "sizeof(cstr2[16] cstr2[15]=\0)=" << sizeof(cstr...

2020-01-08 14:56:12 152

原创 Java整数表示

1、Java只定义了带符号的整数,byte、short、int、long都有符号位;2、Java的内置char类型是两字节,即Unicode万国码;3、Java整数表示:4、

2020-01-08 14:12:31 1731

转载 内联函数

内敛函数虽然叫作函数,在定义和声明(内敛函数声明处就应该也是定义处)的语法上也和普通函数一样,但它已经失去了函数的本质(真正的函数被调用时会在主调函数的函数栈中压栈被调函数的堆栈帧(实参、位于主调函数中的返回地址、主调函数堆栈帧的EBP寄存器指针、被调函数的局部变量、其他寄存器)参见《浅谈C/C++堆栈指引——C/C++堆栈很强大》)。函数是一段可以重复使用的代码,它位于虚拟地址空间中的代码区,也...

2020-01-01 17:04:35 120

原创 编译器只有在三种情况下,才会提供默认的构造函数

如果一个类中没有定义任何的构造函数,那么编译器只有在以下三种情况,才会提供默认的构造函数:1、如果类有虚拟成员函数或者虚拟继承父类(即有虚拟基类)时类有虚拟成员函数意味着这个类可能被继承,那么那个子类将要调用父类的构造函数,当用户没有主动定义构造函数时编译器应该提供默认的构造函数。类有虚拟继承父类,即声明其虚基类可以被共享,理由?2、如果类的基类有构造函数(可以是用户定义的构造函数,或编译器...

2020-01-01 09:51:30 2346

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除