
c++
文章平均质量分 98
w55100
这个作者很懒,什么都没留下…
展开
-
汇编语言(第三版)实验 Chapter2
win64位需要使用dosbox模拟32位环境。可以使用:https://download.youkuaiyun.com/download/w55100/11057669或者网上搜索别人的资源Chapter2实验1debug启动1.-r 查看-r ax 修改ax的值AX成功修改为0100同理可修改 cs,ip2.d 1000:0段地址:...原创 2019-03-25 12:02:09 · 3119 阅读 · 0 评论 -
汇编语言(第三版)实验 Chapter4
本章核心写一个程序计算2^3代码如下:assume cs:abcabc segment mov ax,2 add ax,ax add ax,ax mov ax,4c00H int 21Habc endsend网上下载了masm5.0工具包,解压到文件夹d:\masm\下运行dosboxmou...原创 2019-03-29 17:52:09 · 421 阅读 · 0 评论 -
汇编语言(第三版)实验 Chapter3 寄存器(内存访问)
新知识:DS确定要访问的内存的段地址。配合命令中的偏移地址[0],可以确定要访问的字节。SS:SP 确定栈顶位置。第二节代码mov bx,1000Hmov ds,bxmov al,[0]提问:为什么不能直接mov ds,1000H ?答:就是不行。提问:若令ax=6030,再mov [0],ax,会得到什么结果?答:...原创 2019-03-26 14:24:21 · 371 阅读 · 0 评论 -
gcc x86 calling conventions
别人的图看着太累了,自己整理一下,简单干脆。callingconventions,翻译过来可以叫“调用规则”,“调用约定”,“调用协议”等。究其根底,不过是规定了多层函数嵌套时,caller与callee的有关参数的入栈方式。因为是一个convention,所以你不必纠结为什么要这样,大家都这样了,世界就和平了。我们约定若一个函数A调用一个函数B,则A被称为调用...原创 2019-05-01 19:35:48 · 1131 阅读 · 0 评论 -
C++ STL vector初始化
被这个整的很烦,这些语法也太反人类了。网上的介绍都是从构造函数重载类型出发的,这根本不是人类的思维方式。人类的习惯明明是从需求出发。1.只想赋一个值vector<string> v={"hello"};2.想赋多个相同值vector<string> v(6,"nihao");//缺省后一项时,默认值为内存意义上的全0v...原创 2019-08-05 14:26:29 · 2896 阅读 · 0 评论 -
C++ STL set快速初始化实现去重
在python里想去重,set()一下就好了。c++里其实也有类似的办法。结合这篇《C++ STL vector初始化》,基本能回溯python里面任意使用list+set的自由度。一.直接使用构造函数构造函数重载类型很多,我只推荐一个。(_iter &left , _iter &right),左闭右开。这个_iter类型很宽泛,可以是.........原创 2019-08-13 19:31:41 · 10828 阅读 · 2 评论 -
PAT2019-秋季甲级题解
19.9.8周日下午13:30-16:45发挥不好。回来把题目重新做一遍。第一题7-1 Forever题目:“Forever number” is a positive integer A with K digits, satisfying the following constrains:the sum of all the digits of A is m;the...原创 2019-09-14 08:44:15 · 1200 阅读 · 4 评论 -
C++ 汇编代码分析——递归函数调用、浮点数比较、选择语句
环境ubuntu 18.04 LTS课程地址:https://www.icourse163.org/course/NJU-1001625001一、递归过程调用示例程序,这是一个简单的递归加法。int nn_sum(int n){ int result; if(n<=0) {result =0;} else { r...原创 2019-09-12 13:57:34 · 1142 阅读 · 3 评论 -
C++字符串加减法
减法可以用支持负数的加法来计算。方案1处理不了负数,仅支持2个正整数相加。#include <iostream>#include <string>#include <cstring>using namespace std;string stringAdd2PosNum(string str1, string str2) { //.........................................................原创 2019-01-28 15:13:32 · 25309 阅读 · 0 评论 -
c++中获得对象类型 typeid 与 type_info
复杂部分略去,摘录要素如下:1.typeid是C++的关键字之一,等同于sizeof这类的操作符。2.typeid操作符的返回结果是名为type_info的标准库类型的对象的引用(在头文件typeinfo中定义)3.C++并没有规定typeid实现标准,各个编译器可能会不一样。4.编译器会为每一种typeid操作的类型生成一份保存在数据段的type_info数据。5.每种类型的type_info数...原创 2018-05-15 23:38:20 · 21574 阅读 · 0 评论 -
C++字符串按字典序比较大小后排序
1.这是一个基础问题,也就是说已经被研究透了。现行环境下最方便的方案还是使用库函数strcmp+qsort2.而strcmp这个函数灵活性上多有不足尽管有多种不同的实现方案,但输入只能是c中的char[]数组,或者c++中的string,而返回值又是正数/0/负数。3.希望根据具体情况改编strcmp函数,摘录部分实现方案如下①形式简单易懂,输出值-1/0/1更优美#include <str...原创 2018-05-28 20:13:55 · 29886 阅读 · 0 评论 -
C++中qsort()函数源码改写
写的时候发现一个bug,检查了很久,发现是对端点的排序出错了。提问:给定3个位置上3个数,和一个swap函数,如何设计一个比较方案,保证三个位置上的数按从小到大排序?我一开始写的是 if (comp(lo, mid)>0) { swap(lo, mid, width); } if (comp(mid, hi)>0) { swap(mid, hi, width); } if (com...原创 2018-05-30 22:47:24 · 1243 阅读 · 0 评论 -
C中数字字符串转double和int实现原理
C中,数字字符串以char[]形式定义。C++中string转数字见这篇① 常用函数#include<stdlib.h>atoi --- 转intatod --- 转doublestrtod --- 转doublestrtol --- 转long四兄弟的工作原理都可以用相似的语言描述:函数会扫描参数 nptr字符串,跳过前面...原创 2018-05-31 19:20:12 · 4335 阅读 · 0 评论 -
OJ习题自主纠错模板试作
前言刷PAT经常遇到莫名其妙的错误,从来没有一次AC的事情。而且一直迷之自信,感觉自己的逻辑没有问题,在看到bad case之前,靠自己纠错基本是找不到的。去微博上私信过姥姥PAT能不能公开bad case,回复说要培养自己发现bug的能力,在企业没人会告诉你错在哪里。这话听着很有道理,但又很没有道理。参考网上别人AC的代码,看看过程也觉得差不多。除非对方写的明显比我好,不然舍...原创 2019-01-20 07:29:07 · 393 阅读 · 0 评论 -
C++中日期处理总结
190811更新我以为搞了这么一篇就一劳永逸了,结果写了个日期处理的题还是有很个小坑,当初没搞清楚。①修正行文错误,正确版本【mktime与localtime互为反函数】。②补充mktime过程中yday的运算逻辑问题。①头文件#include<ctime> //或<time.h>②两个类型需要理解的只有2个类型,time_t和tm;...原创 2019-01-08 18:39:53 · 2229 阅读 · 2 评论 -
C++中文件重定向详解
前言使用c++一段时间后,想从某data.input文件中读入数据,而不是从小黑窗里键盘输入。或者想直接输出到某个data.txt文件,而不是打印在小黑窗里,就需要用到文件重定向。本文主要介绍3种方案。C++中可以rdbuf()方案。C中可以用freopen(),和 {fscanf,fprintf},两种方案。顺带一些坑。①C++ 实现方法用好io...原创 2019-01-19 22:20:20 · 14905 阅读 · 0 评论 -
C++字符串乘法
这个问题的官方学名似乎叫,大数乘法。名字相当霸气,不过现在都有很成熟的解决方案了,运用乘法基本原理也能自己搞一个出来。写文章便于以后来回忆。一、横向比较对比了几个实现方法。(数据范围[1,10^8],重复10^5次)1.最好理解的版本是用std::vector存临时结果,然后遍历vector逐位递进。优点是可读性很强,基本符合自然语言描述的过程。缺点是这个算法很慢,貌似用...原创 2019-01-26 19:07:26 · 6787 阅读 · 1 评论 -
c++中数字与string转换
网上流传的其他什么sstream,sprintf过于麻烦,提供便于记忆版本。1.int->string//头文件//#include<string>//注意这个是string,没有c//从C++11开始引入std::to_string(int)std::to_string(long)std::to_string(long long...原创 2018-04-10 20:39:28 · 32266 阅读 · 3 评论