![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c/c++
文章平均质量分 50
jena_wy
这个作者很懒,什么都没留下…
展开
-
计算这2个经纬度点之间的距离
如下地球图所示,假设半径R为1,O是球心,A (lat1,lon1) 和 B (lat2,lon2) 是我们感兴趣的2个点。AC长度是sin(theta/2),AB长度是2*sin(theta/2)。这时候,AD的弦长AD= 2*sin(dlon/2)*cos(lat1),类似的可以推出CB的长度= CB=2*sin(dlon/2)*cos(lat2)弦AC的长度,参照图1的方式,那么是AC=2*sin(dlat/2),弦BD也是一样的长度。E、F 2个点是赤道上的2个点,它们的纬度是0。转载 2024-06-25 15:38:05 · 26 阅读 · 1 评论 -
c++ curl和openssl编译并且支持https
windows系统下的curl库编译有好几种形式。方法一:下载了curl库后,解压文件,projects\Windows\文件夹下有各种vs项目的各种版本,打开生成DLL Release或DLL Release -DLL Windows SSPI即可.(DLL Release - DLL OpenSSL 项目,看方法二操作)方法二:前提准备:命令行方式,(windows下的cmake工具叫做nmake,当然打开cmd命令行是没有这个环境的,但是微软已经给我们准备好了有所有vs工具的命令行)转载 2024-05-27 15:13:51 · 92 阅读 · 0 评论 -
TCP通信
/ 如该连接在60秒内没有任何数据往来,则进行此TCP层的探测。// 尝试探测的最多次数。if(listen(sock, 5) < 0) //允许连接的最大数量为5。//上面的结构体和define是#include 的内容。//需要connect的是对端的地址,因此这里定义服务器端的地址结构体。// 探测发包间隔为5秒。//用来接收客户端的socket地址结构体。...原创 2022-08-10 17:29:00 · 503 阅读 · 0 评论 -
组播收发数据
组播的收发转载 2022-07-13 11:55:46 · 430 阅读 · 0 评论 -
补码的计算方法
补码的计算方法原创 2022-06-23 17:11:29 · 1336 阅读 · 0 评论 -
windows下启用keepalive并且自定义心跳包时间
最近在编写c的socket,在使用keepalive时候遇到一些问题,如下设置即可#include <winsock2.h>struct tcp_keepalive { u_long onoff; u_long keepalivetime; u_long keepaliveinterval;};#define SIO_RCVALL _WSAIOW(IOC_VENDOR,1)#define SIO_...转载 2022-04-14 17:43:09 · 2147 阅读 · 0 评论 -
补码快速计算
以前的计算都是取反加+1,注符合位不变比如:10001000,取反11110111,加1,11111000,一种比较快的计算方法是:二进制从右边数,第一个是1不变,这个1的左边都取反码比如:10000100,从右边数第一个1是第三位,所以右边的三位不变,左边除符号位取反,其结果为:11111100....原创 2022-04-12 11:42:31 · 2874 阅读 · 0 评论 -
关于BCD码
BCD码是4位代表一个数:比如用BCD码表示十进制数,29H是一个十六进制的BCD码,前四位2对应的是0010,后面9对应的是1001, 所以对应的十进制数是2*10+9,对应的十进制的数是29.原创 2022-04-12 11:25:16 · 2215 阅读 · 0 评论 -
二进制小数转16进制
比如0.101转16进制,向右补0,然后再计算,0.1010对应的的16进制是0.A原创 2022-04-07 01:00:57 · 5191 阅读 · 0 评论 -
c++vector实现二维表
一、向量的介绍 向量vector是一种对象实体, 能够容纳许多其他类型相同的元素, 因此又被称为容器。 与string相同, vector 同属于STL(Standard Template Library, 标准模板库)中的一种自定义的数据类型, 可以广义上认为是数组的增强版。 在使用它时, 需要包含头文件 vector,#include<vector> vector 容器与数组相比其优点在于它能够根据需要随时自动调整自身的大小以便容下所要放入的...转载 2022-01-18 21:57:34 · 2653 阅读 · 0 评论 -
浮点数在计算机中的存储方式
C语言和 C#语言中,对于浮点型的数据采用单精度类型(float)和双精度类型(double)来存储:float 数据占用 32bit;double 数据占用 64bit;我们在声明一个变量 float f = 2.25f 的时候,是如何分配内存的呢?其实不论是 float 类型还是 double 类型,在存储方式上都是遵从IEEE的规范:float 遵从的是 IEEE R32.24;double 遵从的是 IEEE R64.53;单精度或双精度在存储中,都分为三个部分:.转载 2022-01-12 19:00:39 · 3098 阅读 · 0 评论 -
读取ini文件
#include <windows.h>static void GetCurrentPath(char *PathName){ char *p,*q; GetModuleFileName(NULL,PathName,256); q = PathName; do { p = q+1; q = strstr(p,"\\"); } while (q); if (p) *p = 0; p = strstr...原创 2021-11-06 11:15:26 · 110 阅读 · 0 评论 -
C语言运算符优先级表
优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 -- () 圆括号 (表达式)/函数名(形参表) -- ...转载 2021-11-02 09:40:52 · 13519 阅读 · 0 评论 -
c++日期差
题目描述有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天输入描述:有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD输出描述:每组数据输出一行,即日期差值#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<iostream>using namespace std;int days[2]转载 2021-08-20 16:14:43 · 896 阅读 · 1 评论 -
c++动态库的接口声明
extern "C" __declspec(dllexport) int test();原创 2021-07-08 15:16:37 · 542 阅读 · 0 评论 -
c语言日期差
#include <bits/stdc++.h>using namespace std;int to_day(int y, int m, int d){ int mon[] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; int day = 0; int i; for(i=1; i<y; i++){ day += (i%4==0 && i%100!=0 || i%400==0)? 366 : 365; ...转载 2021-03-24 18:40:30 · 252 阅读 · 0 评论 -
C语言版本
ANSI C共包括15个头文件。1995年,Normative Addendum 1(NA1)批准了3个头文件(iso646.h、wchar.h和wctype.h)增加到C标准函数库中。C99标准增加6个头文件(complex.h、fenv.h、inttypes.h、stdbool.h、stdint.h和tgmath.h)。C11标准中又新增了5个头文件(stdalign.h、stdatomic.h、stdnoreturn.h、threads.h和uchar.h)。...转载 2020-10-09 09:40:05 · 89 阅读 · 0 评论 -
Markup读取xml
bool parsePartition(char *fileName){ if (fileName == NULL ) { return false; } *partitionNum = 0; CMarkup xml; xml.Load(fileName); xml.ResetPos(); xml.FindElem(); CString temp; temp = xml.GetTagName();...原创 2020-09-25 17:44:24 · 216 阅读 · 0 评论 -
MAKEWORD
MAKEWORD编辑 讨论 上传视频本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!MAKEWORD 宏 平台:SDK这个宏创建一个无符号16位整型,通过连接两个给定的无符号参数。(注:typedef unsigned short WORD;)中文名MAKEWORD类型符号参数隶属领域计算机软件运行方式制定变量的高低字节序目录1 函数原型 2 备注 3 例子 函数原型编辑WORD MAKEWORD(...转载 2020-09-25 11:36:28 · 967 阅读 · 0 评论 -
通过CPU的振荡精确计算时间
这里用到了两个函数QueryPerformanceFrequency和QueryPerformanceCount,分别是获取频率和个数,而个数/频率=时间(时间为秒)BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency); 高精度的频率QueryPerformanceCounter:检索高分辨率性能计数器的当前值The QueryPerformanceCounter function retrieves the current .原创 2020-09-23 11:31:51 · 325 阅读 · 0 评论 -
纳秒与微秒的计算
秒的换算:ms(毫秒),μs(微秒),ns(纳秒),ps(皮秒)皮秒皮秒,符号ps(英语:picosecond ).1皮秒等于一万亿分之一秒(10-12秒)1,000 皮秒 = 1纳秒1,000,000 皮秒 = 1微秒1,000,000,000 皮秒 = 1毫秒1,000,000,000,000 皮秒 = 1秒纳秒纳秒,符号ns(英语:nanosecond ).1纳秒等于十亿分之一秒(10-9秒)1 纳秒 = 1000皮秒1,000 纳秒 = 1微秒1,0...转载 2020-09-23 10:52:18 · 5364 阅读 · 0 评论 -
获取系统当前时间(微秒)
获取系统当前时间在调试、日志输出、代码优化时,我们常常需要获得系统的时间。在一些性能要求高的代码优化时,对时间的精确度还比较高。在网上找不高质量的代码,便自己研究了一下,代码如下(能满足跨平台的要求,单位精确到微秒):#ifdef _WIN32#include <windows.h>#else#include <time.h>#endif // _WIND32// 定义64位整形#if defined(_WIN32) && !defined转载 2020-09-22 15:27:31 · 2076 阅读 · 0 评论 -
system剖析
system()函数功能强大,很多人用却对它的原理知之甚少先看linux版system函数的源码:复制代码 代码如下:#include <sys/types.h>#include <sys/wait.h>#include <errno.h>#include <unistd.h>int system(const char * cmdstring){ pid_t pid; int status; if(cmd...转载 2020-09-15 10:00:25 · 104 阅读 · 0 评论 -
C语言中system函数用法解释
system函数 是可以调用一些DOS命令,比如system("cls");//清屏,等于在DOS上使用cls命令================================================================下面列出常用的DOS命令,都可以用system函数调用:ASSOC 显示或修改文件扩展名关联。AT 计划在计算机上运行的命令和程序。ATTRIB 显示或更改文件属性。BREAK 设置或清除扩展式 CTRL+C 检查。CACLS 显示或修改文件的访问控制列转载 2020-09-15 09:58:35 · 3027 阅读 · 0 评论 -
计算航向角和经纬度之间的距离
#define PI 3.14159265358979323846#define EARTH_RADIUS_L 6378137#define EARTH_RADIUS_S 6356752.3142/*//角度转弧度*/static double rad(double d){ return d * PI / 180.0;}/*//弧度转角度*/static double deg(double x){ return x * 180 / PI;}/*//获取两点之间距离*/...原创 2020-09-14 19:49:06 · 1241 阅读 · 0 评论 -
获取应用程序的路径
DWORD OSLib_GetModuleFileName ( HMODULE hModule, LPSTR lpFilename, DWORD nSize){#if defined(_LIB_WINDOWS) return GetModuleFileName(hModule, lpFilename, nSize);#endif#if defined(_LIB_LINUX)char sysfile[25] = "/proc/self/exe";if (-1 != readlink...原创 2020-08-21 12:02:56 · 178 阅读 · 0 评论 -
udp通信
//udp 服务端#include<iostream>#include<winsock2.h>#pragma comment(lib,"ws2_32.lib")#define MAX_DATA 50#define FAILURE -1char serverIp[]="127.0.0.1";int port =6000;int main(){ WSADATA ws; WSAStartup(MAKEWORD(2,2),&ws);...原创 2020-08-21 11:36:22 · 146 阅读 · 0 评论 -
穷举法实现3行3列每行每列对角线加起来相等
#include<stdlib.h>#include <stdio.h>#include<time.h>#include<math.h>#define SUM_DATA 15#define NUM 3int nArray[NUM][NUM] ={0};int GetResult(int nArry[][NUM],int size){ int sum=0; for(int i=0; i<size; i++) {...原创 2020-08-19 10:34:02 · 1237 阅读 · 0 评论 -
老虎、杠子游戏
#include<stdlib.h>#include <stdio.h>#include<time.h>#include<math.h>char szData[4][10]={"虫","鸡","老虎","杠子"};void Play(int computer, int person){ if(person<1||person>4) { printf("玩家输入不正确,请输入1-4之间\n"); ...原创 2020-07-31 17:32:11 · 1026 阅读 · 0 评论 -
剪刀、石头、布游戏
#include<stdlib.h>#include <stdio.h>#include<time.h>char szData[3][10]={"剪刀","石头","布"};void Play(int computer, int person){ printf("电脑出%s\t玩家出的%s\t",szData[computer-1],szData[person-1]); if(person==computer) { pr...原创 2020-07-31 17:10:20 · 148 阅读 · 0 评论 -
三个农民
#include<stdio.h>void InputData(int data[][2], int *size){ printf("请输入人员个数,人员个数小于500:\n"); scanf("%d",size); printf("请输入%d个起始和结束时间\n",*size); for(int i=0; i<*size; i++) { printf("请输入第%d组数据,数据小于1000000\n",i)...原创 2020-07-31 16:05:36 · 207 阅读 · 0 评论 -
tinyxml读写
读xmlint loadXML(char *name){ TiXmlDocument doc; string attr=""; memset(point,0,sizeof(point)); if(!doc.LoadFile(name)) { return 1; } TiXmlElement* root = doc.FirstChildElement(); if(root == NULL) {...原创 2020-06-03 18:40:18 · 267 阅读 · 0 评论 -
vs2010旗舰版可用密钥
YCFHQ9DWCYDKV88T2TMHG7BHP转载 2019-10-31 10:57:32 · 3128 阅读 · 0 评论