char函数

理解Javascript执行过程

ⅰ亾dé卋堺 提交于 2019-12-06 11:16:33
Javascript是一种解释型的动态语言。 在程序中,有编译型语言和解释型语言。那么什么是编译型语言,什么是解释型语言呢? 编译型语言: 它首先将源代码编译成机器语言,再由机器运行机器码(二进制)。 解释型语言: 相对于编译型语言而存在的,源代码不是直接编译为目标代码,而是将源代码翻译成中间代码,再由解释器对中间代码进行解释运行的。 比如javascript/python等都是解释型语言(但是javascript是先编译完成后,再进行解释的)。 主要的编译型语言有c++, 解释型语言有Javascript, 和半解释半编译(比如java)。 一. 了解代码是如何运行的? 我们都知道,代码是由CPU执行的,但是CPU不能直接执行我们的if...else这样的代码,它只能执行二进制指令,但是二进制对应我们的可读性来说并不友好,比如二进制 11100000 这样的,我们并不知道它代表的是什么含义, 因此科学家们就发明了汇编语言。 汇编语言 什么是汇编语言? 它解决了什么问题? 汇编语言是二进制指令的文本形式,和二进制指令是一一对应的关系,比如加法指令 00000011 写成汇编语言就是ADD。那么汇编语言的作用就是将ADD这样的还原成二进制,那么二进制就可以直接被CPU执行。它最主要的作用就是解决二进制指令的可读性问题。 但是汇编语言也有缺点: 1. 编写的代码非常难懂,不好维护。 2

C++ 第2章 变量、基本数据类型

老子叫甜甜 提交于 2019-12-06 10:58:31
/* 基本内置类型: 算术类型 空类型 位 / 比特( bit ): 0/1 字节 byte : 8 个二进制位(计算机存储信息的基本单位)即 8 比特 / 位 字 word : 若干个字节组成一个字(可以存放一条计算机指令或数据) 字长 word size : CPU 中每个字包含的二进制的长度(即位数) 位 / 比特 bit: 0/1 --> 字节 byte ( 8 比特 :00000000 ) --> 字 (若干字节) 算术类型: 整型( 包含字符和布尔类型在内)和 浮点型 C++ 算术类型: 类型 含义 最小尺寸 main 返回 0 表示成功 Bool 布尔类型 未定义 真转换成 1 假转换成 0 Char 字符 8 位 即 8 个二进制位 一个字节 Wchar_t 宽字符 16 位 Char16_t Unnicode 字符 16 位 Char32_t Unicode 字符 32 位 Short 短整型 16 Int 整型 16 Long 长整型 32 Long long 长整型 64 Float (6 位有效数) 单精度浮点数 6 位有效数字 Double 双精度浮点数 10 位有效数 Long double 扩展精度浮点数 10 基本的字符类型是 char 一个 char 的空间应该确保可以存放机器基本字符集中任意字符对应的数字值。也就是说, 一个 char

实验七--类和对象(2)

泪湿孤枕 提交于 2019-12-06 09:55:11
1. 【问题描述】 自定义一个日期时间类DateTimeType,它含有类DateType与类TimeType的类对象作为其数据成员,并具有所列的其他几个成员函数。而后编制主函数,说明DateTimeType的类对象,并对其成员函数以及二对象成员所属类的公有成员函数进行使用。 class DateTimeType { //自定义的日期时间类 DateTimeType DateType date; //类 DateType 的类对象 date 作为其数据成员 TimeType time; //类 TimeType 的类对象 time 作为其另一个数据成员 public: DateTimeType(int y0=1, int m0=1, int d0=1, int hr0=0, int mi0=0, int se0=0); //构造函数,设定 DateTimeType 类对象的日期时间,并为各参数设置了默认值 DateType& GetDate(){ return date; } //返回本类的私有数据对象 data TimeType& GetTime(){ return time; } //返回本类的私有数据对象 time void IncrementSecond(int s); //增加若干秒,注意“进位”问题 void PrintDateTime(); /

解密 char转换为json

浪子不回头ぞ 提交于 2019-12-06 09:53:31
1 typedef struct CRYPT_BLOCK { 2   DWORD dwSize; // Data的 3   DWORD dwKey; // 密钥 循环使用DWORD的每个字节来进行加密 详情见XorEncrypt 4   char chData[1]; // 加密后的数据 5 } CRYPT_BLOCK, *PCRYPT_BLOCK; 6 7 typedef boost::shared_ptr<Json::Value> JsonSharedPtr; 一个数异或另一个数两次后,该数保持不变。 即: c = a^b; c = c^b; c == a; 这一规律就是使用异或运算对数据及文件进行加密处理的基本原理。 1 bool XorEncrypt(const char* pKey, DWORD dwCbKey, const char* pIn, DWORD dwCbSize, char* pOut) 2 { 3   if (pIn == NULL || pOut == NULL || pKey == NULL) { 4     return false; 5   } 6 7   for (DWORD i = 0; i < dwCbSize; ++i) { 8     pOut[i] = pIn[i] ^ pKey[i % dwCbKey]; 9   } 10 11  

数据库入门

≯℡__Kan透↙ 提交于 2019-12-06 09:45:20
知识点 △用数据库的原因 1文件操作的复杂度 2同步 3并发处理 4安全 △数据库系统(DBS) 数据库(DB) + 数据库管理系统 (DBS)+ 数据库应用程序 + 数据库管理员 (BDA)+ 最终用户 △数据库管理系统-DBM 网络应用服务端 我们要使用服务端的数据 - 需要有一个客户端 客户端可以自己写 : 未来写代码的时候 也可以用别人写好的 : 第三方的工具 数据库管理软件的公司出版的官方客户端 数据库管理系统本质上也是管理一堆文件 只不过人家的管理方式比我们更高效 更安全 △数据库管理员-DBA 搭建数据库服务环境 用户的创建 权限的管理 性能\语句的优化 数据库的二次开发 : 让数据库具有公司的特质 △软件 mysql : 小公司 甲骨文 oracle : 事业单位 金融企业 微软 sql server sqllite △数据库的分类 关系型数据库 mysql oracle sqlserver sqllite 非关系型数据库 redis mongodb memcache hbase 关系型数据库 优点: 1、易于维护:都是使用表结构,格式一致 2、使用方便:SQL语言通用,可用于复杂查询 3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询 缺点: 1、读写性能比较差,尤其是海量数据的高效率读写 2、固定的表结构,灵活度稍欠 3、高并发读写需求

C++ 中int,char,string,CString类型转换(一)

时光怂恿深爱的人放手 提交于 2019-12-06 09:22:10
1. c++中string到int的转换 1) 在C标准库里面,使用atoi: #include <cstdlib> #include <string> std::string text = "152"; int number = std::atoi( text.c_str() ); if (errno == ERANGE) //可能是std::errno { //number可能由于过大或过小而不能完全存储 } else if (errno == ????) //可能是EINVAL { //不能转换成一个数字 } 2) 在C++标准库里面,使用stringstream:(stringstream 可以用于各种数据类型之间的转换) #include <sstream> #include <string> std::string text = "152"; int number; std::stringstream ss; ss << text;//可以是其他数据类型 ss >> number; //string -> int if (! ss.good()) { //错误发生 } ss << number;// int->string string str = ss.str(); if (! ss.good()) { //错误发生 } 3) 在Boost库里面,使用lexical

CString,int,string,char*之间的相互转换

纵饮孤独 提交于 2019-12-06 09:21:44
string 转 CString CString.format("%s", string.c_str()); char 转 CString CString.format("%s", char*); char 转 string string s(char *); string 转 char * char *p = string.c_str(); CString 转 string string s(CString.GetBuffer()); 1,string -> CString CString.format("%s", string.c_str()); 用c_str()确实比data()要好. 2,char -> string string s(char *); 你的只能初始化,在不是初始化的地方最好还是用assign(). 3,CString -> string string s(CString.GetBuffer()); GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间. 《C++标准函数库》中说的 有三个函数可以将字符串的内容转换为字符数组和C—string 1.data(),返回没有”\0“的字符串数组 2,c_str(),返回有”\0“的字符串数组 3,copy() CString互转int 将字符转换为整数,可以使用atoi、

Android中JNI编程详解

你说的曾经没有我的故事 提交于 2019-12-06 08:34:45
Android 系统不允许一个纯粹使用C/C++的程序出现,它要求必须是通过Java代码嵌入Native C/C++——即通过JNI的方式来使用本地(Native)代码。因此JNI对Android底层开发人员非常重要。 如何将.so文件打包到.APK 让我们 先 从最简单的情况开始,假如已有一个JNI实现——libxxx.so文件,那么如何在APK中使用它呢? 在我最初写类似程序的时候,我会将libxxx.so文件push到/system/lib/目录下,然后在Java代码中执行System.loadLibrary(xxx),这是个可行的做法,但需要取得/system/lib 目录 的写权限(模拟器通过adb remount取得该权限)。但模拟器 重启之 后libxxx.so文件会消失。现在 我找到了更好的方法,把.so文件打包到apk中分发给最终用户,不管是模拟器 或者 真机 ,都不再需要system分区的写权限。实现步骤如下: 1、在你的项目根目录下建立libs/armeabi目录; 2、将libxxx.so文件copy到 libs/armeabi/下; 3、此时ADT插件自动编译输出的.apk文件中已经包括.so文件了; 4、安装APK文件,即可直接使用JNI中的方法; 我想还需要简单说明一下libxxx.so的命名规则,沿袭Linux传统,lib.so是类库文件名称的格式

Android下玩JNI的新老三种姿势

落爺英雄遲暮 提交于 2019-12-06 08:30:20
请尊重原创,转载请注明出处: http://blog.csdn.net/mabeijianxi/article/details/68525164 (本文已在 hongyang 微信公众号发布) 说明:本篇不撸代码,只玩编译,其包含了Android studio 2.2最新的JNI玩法 编译环境:macOS 10.12.3 工具包含:Android Studio 2.2 NDK-r14 在Android下要玩jni首先下载ndk是必须的,可以直接去 https://developer.android.google.cn/ndk/downloads/index.html 下载,当然我们家AS为开发者也提供了便捷 只需如图勾选然后OK即可,我的版本是r14,值得一提的是 google ndk-build 命令在 r13 后默认使用 Clang ,并将在后续版本中移除 GCC ,其编译速度更快、编译产出更小、出错提示更友好。 一、徒手编写Android.mk然后ndk-build编译: 这种编译其实是用make工具来玩的,在 linux 徒手写并编译过c的应该很清楚,通过编写makefile,然后再用make编译已经比不停的用gcc命令逐个编译要爽很多,但是 makefile 的编写还是有点蛋疼。程序员都是化繁为简善解人意的,通过 ndk 工具我们无需自己写 makefile 了

Android JNI基础篇(一)

拥有回忆 提交于 2019-12-06 08:29:11
Android JNI 基础篇 前言 JNI学习其实并不难,在这里,我将引导大家学习JNI的基础知识,认真学完本教程,你将更加坚信我说的话。来吧,我们一起学习! JNI 基础 JNI 是什么? JNI的全称就是Java Native Interface,顾名思义,就是Java和C/C++相互通信的接口,就好比买卖房子都需要找中介一样,这里的JNI就是Java和C/C++通信的中介,一个中间人。 JNI 头文件 JNI开发前提是要引入jni.h头文件,这个文件Android NDK目录下面 示例如下: #include<jni.h> 怎么加载 so 库? Android提供了3个实用的函数用来加载JNI库,分别是System.loadLibrary(libname),Runtime.getRuntime().loadLibrary(libname),以及Runtime.getRuntime().load(libFilePath)。 用 loadLibrary 函数加载 用System.loadLibrary(libname)和Runtime.getRuntime().loadLibrary(libname)这两个函数加载so库,不需要指定so库的路径,Android会默认从系统的共享库目录里面去查找,Android的共享库目录就是vendor/lib和system/lib