整数在计算机中的表示 在计算机中,整数采用补码表示.当前主流编译器中整型在内存中占用四个字节,共32位. 机器数:一个数在计算机中的二进制表示形式, 叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1.比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011.如果是 -3 ,就是 10000011 .那么-1,就是10000001 原码.补码.补码含义 原码:第一位为符号位,其余位表示数值,如-1的原码:1,000...0001(…
建议和规则 建议: 理解编译器所使用的数据模型 使用rsize_t或size_t类型表示所有表示对象长度的整数值 理解整数转换规则 使用安全的整数库 对来自不信任来源的整数值实行限制 如果输入函数无法处理所有可能出现的错误就不要用它们转换字符数据 使用strtol()或相关函数把字符串标记换换为整数 只使用显式的有符号或无符号char类型表示数值 验证所有的整数值位于范围内 保证枚举常量映射到唯一的值 使用%操作符时不要假设余数总是正的 把指针转换为整数或者把整数转换为指针时需要小心 当普通的整…
第四章 字符串和格式化输入输出 4.2 字符串简介 字符串(character string)就是一个或多个字符的序列.下面是一个字符串的例子: “Zing went the strings of my heart,” 双引号不是字符串的一部分.它们只是通知编译器其中包含了一个字符串,正如单引号标识着一个字符一样. 4.2.1 char 数组类型和空字符 C 没有为字符串定义专门的变量类型,而是把它存储在 char 数组中. -----------------------------------…
1. 词法“陷阱” = 不同于 == , 可以通过if( 1 == a )来避免 & | 不同于 && || 词法分析中的“贪心法” 编译器将程序分解成符号的方法是,从左到右一个字符一个字符地读入,如果该字符可能组成一个符号,那么再读入下一个字符,判断已经读入的两个字符组成的字符串是否可能是一个符号的组成部分:如果可能,继续读入下一个字符,重复上述判断,直到读入的字符组成的字符串已不再可能组成一个有意义的符号.这个处理策略被称为“贪心法”,也称为“大嘴法”.举例:a---b 等价于…
1. /* 整数上溢 */ #include <stdio.h> int main(void) { ; unsigned ; /* 无符号整数j像一个汽车里程指示表(形容的太好了,可参考<计算机科学导论>第3章 数据存储,有图), 当达到最大值时,它将溢出到起始点.整数i也是同样.它们的主要区别是unsigned int变量j的起始点是0(正像里程 指示表那样),而int变量i的起始点则是-2147483648.——参考<C Primer Plus> */ printf…
SIMD相关头文件包括: //#include <ivec.h>//MMX //#include <fvec.h>//SSE(also include ivec.h) //#include <dvec.h>//SSE2(also include fvec.h) #include <mmintrin.h> //MMX #include <xmmintrin.h> //SSE(include mmintrin.h) #include <emmi…
应用软件开发的64 位WINDOWS 系统环境兼容性 1. 64 位CPU 硬件 目前的64位CPU分为两类:x64和IA64.x64的全称是x86-64,从名字上也可以看出来它和 x86是兼容的,原先的32位程序可以在x64上运行得很好,这也就是为什么在x64的CPU上 能够成功安装32位的Windows操作系统.现在市场上卖的家用电脑的CPU通常都是x64. 两家顶级CPU公司Intel和AMD分别推出了EM64T(Extended Memory 64 Technology)和 AMD64(…
内容简介 1.课程大纲 2.第一部分第四课第二章:变量的世界之变量声明 3.第一部分第四课第三章预告:变量的世界之显示变量内容 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. C语言编程基础知识 什么是编程? 工欲善其事,必先利其器 你的第一个程序 变量的世界 运算符 条件表达式 循环语句 实战:第一个C语言小游戏 函数 练习题 习作:完善第一个C语言小游戏 C语言高级技术 模块化编程 进击的指针,C语言王牌 数组 字符串 预处理…
每一个变量都有数据类型,Go中的数据类型有: 简单数据类型:int.float.complex.bool和string 数据结构或组合(composite):struct.array.slice.map和channel 接口(interface) 当声明变量的时候,会做默认的赋0初始化.每种数据类型的默认赋0初始化的0值不同,例如int类型的0值为数值0,float的0值为0.0,string类型的0值为空"",bool类型的0值为false,数据结构的0值为nil,struct的0值…
第一部分 基础 第1章 导论 (已看) 第2章 专业工具 (已看) 第3章 游戏软件工程基础 (已看) 第4章 游戏所需的三维数学 (已看) 第二部分 低阶引擎系统 第5章 游戏支持系统 (已看) 第6章 资源及文件系统 (已看) 第7章 游戏循环及实时模拟 (已看) 第8章 人体学接口设备(HID) (已看) 第9章 调试及开发工具 (已看) 第三部分 图形及动画 第10章 渲染引擎 第11章 动画系统 (已看) 第12章 碰撞及刚体动力学 (已看) 第四部分 游戏性 第13章 游戏性系统简介…
6.3.1 算术操作数 6.3.1.1 布尔.字符以及整数 1.每个整数类型具有一个整数转换等级,如下定义: ——两个带符号的整数类型都不应该具有相同等级,即使它们具有相同的表示. ——一个带符号整数类型的等级应该比任一具有更低精度的带符号整数类型的等级要高. ——long long int的等级应该比long int的等级要高,而long int等级要比int等级要高,int要比short int等级要高,而short int要比signed char等级要高. ——任一无符号整数类型的等级应…
#include <sys/eventfd.h> int eventfd(unsigned int initval, int flags); eventfd创建一个eventfd对象,该对象可用于用户空间的程序实现事件等待.通知机制,也可用于由内核向用户空间的应用进行事件的通知.eventfd对象在内核中包含了一个计数器,该计数器是64位的无符号整数(uint64_t),该计数器由eventfd函数的initval参数进行初始化. 在Linux2.6.26之前的版本,flags参数是无用的,必…
思维导图 预计阅读时间:30min 阅读书籍 <深入理解计算机系统 第五版> 参考视频 [精校中英字幕]2015 CMU 15-213 CSAPP 深入理解计算机系统 课程视频 参考文章 <深入理解计算机系统(2.1)---信息的存储与值的计算> <深入理解计算机系统(2.2)---布尔代数以及C语言上的位运算> <深入理解计算机系统(2.3)---整数的表示方式精解>无符号与补码编码(重要)> <深入理解计算机系统(2.4)---C语言的有符号…
MySQL高级 推荐阅读: 锁:https://www.cnblogs.com/zwtblog/tag/锁/ 数据库:https://www.cnblogs.com/zwtblog/tag/数据库/ 函数 聚集函数一般用作统计,包括: count([distinct]*) 统计所有的行数(distinct表示去重再统计,下同) count([distinct]列名) 统计某列的值总和 sum([distinct]列名) 求一列的和(注意必须是数字类型的) avg([distinct]列名) 求一…
1.整型int C语言提供了很多整数类型(整型),这些整型的区别在于它们的取值范围的大小,以及是否可以为负.int是整型之一,一般被称为整型.以后,在不产生歧义的情况下,我们把整数类型和int都称为整型. int代表有符号整数,也就是说,用int声明的变量可以是正数,可以是负数,也可以是零,但是只能是整数.标准规定int的最小取值范围是-32767到32767.int的取值范围因机器而异,但是一定要大于或者等于-32767到32767.一般来说,int占用一个字的内存空间.因此,字长为16位(B…
类型 定义 描述 ATOM typedef WORD ATOM; 原子(原子表中的一个字符串的参考) BOOL typedef int BOOL; 布尔变量 BOOLEAN typedef BYTE BOOLEAN; 布尔变量 BYTE typedef unsigned char BYTE; 字节(8位) CCHAR Windows字符 CHAR typedef char CHAR; Windows字符 COLORREF typedef DWORD COLORREF; 红.绿.蓝(RGB)彩色值…
//////////////////////////////////////////////////////// //图的邻接矩阵的DFS和BFS //////////////////////////////////////////////////////// #include <iostream> #include <stdlib.h> #include <queue> #define MaxVertexNum 100 //最大顶点数 //#define INFINI…
简要说明: ANSI是一种字符代码,为使计算机支持更多语言,通常使用 0x80~0xFF 范围的 2 个字节来表示 1 个字符. Uincode(统一码.万国码.单一码)是计算机科学领域里的一项业界标准,包括字符集.编码方案等.Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言.跨平台进行文本转换.处理的要求.1990年开始研发,1994年正式公布. 优缺点: Ansi用char表示一个字符,占用一个字节储存空间.所以…
目录索引 清风注解-Swift程序设计语言 Point 6. 输出常量和变量 代码事例: // 输出的内容会在最后换行 println("hello, world") // 输出的内容最后不会换行 print("My name is Dash Geng") 注解: 可以用 println 或 print 函数来输出当前常量或变量的值. println 和 print 是用来输出的全局函数(内置函数). println 函数输出的内容会在最后换行. print 函数输…
题目: 描述 呼叫转移服务是一个把呼叫号码A转移到号码B的服务.举个例子:当你正在度假时,这样的系统非常有帮助.A君度假去了,那么,A君的工作电话可以通 过呼叫转移至B君.更进一步讲,当B君也正好在度假,还可以继续 通过呼叫转移到C君,依次类推.也就是说,当一个客户打电话到A君,通过呼叫转移系统,最 后转接到了C君. 本期的编程挑战是要实现一个和呼叫转移系统相关的逻辑.根据个人的度假时间安排和呼叫转移设置,返回呼叫转移的个数和“深度”. 输入 第一行给出一个整数N,代表从第二行开始有多少个度假安…
我是一个C++初学者,控制台输出斐波那契数列. 代码如下: //"斐波那契数列"V1.0 //李国良于2017年1月12日编写完成 #include <iostream> #include <Windows.h> using namespace std; const int num = 10000; const int ArSize = 1000; void functionOne(int num); void functionTwo(int num); int…
1.关于main 函数中的 return 0 C99标准中,main 函数的返回值类型必须是 int ,这样返回值才能传递给程序的激活者(如操作系统).如果 main 函数的最后没有写 return 语句的话,C99 规定编译器要自动在生成的目标文件中(如 exe 文件)加入return 0; ,表示程序正常退出.尽管如此有人会为了移植性在main函数后面加上return 0,这是为了照顾老版本的编译器,如vc6.0等,不过现在过了这么多年了,应该没有人会用这么老的编译器了吧(也许不一定),所以…
6-1 邻接矩阵存储图的深度优先遍历(20 分) 试实现邻接矩阵存储图的深度优先遍历. 函数接口定义: void DFS( MGraph Graph, Vertex V, void (*Visit)(Vertex) ); 其中MGraph是邻接矩阵存储的图,定义如下: typedef struct GNode *PtrToGNode; struct GNode{ int Nv; /* 顶点数 */ int Ne; /* 边数 */ WeightType G[MaxVertexNum][MaxVe…
1,linux系统上如何跑c++程序 1,vim一个hello.cpp,内容如下: #include <iostream> using namespace std; int main() { cout << "Hello World!" << endl; ; } 2,g++编译刚刚的程序:g++  源文件名  -o  可执行的脚本名,比如我执行的就是:g++ hello.cpp -o hello 3,在当前文件夹执行: ./hello     ps:…
字符串和格式化输入输出 #include<stdio.h> #include<string.h> #define DENSITY 62.4 int main(void) { float weight, volume; int size, letters; ];//数组 printf("Hi!What's your first name?"); gets(name);//get(sth.)取得地址 printf("%s,What's your weigh…
#include<iostream> #include<string> #include <limits> using namespace std; int main() { cout << "type: \t\t\t" << "************size**************" << endl; cout << "bool: \t\t\t" <…
在32位的机器环境下,char.short.int.float.double这样的内置数据类型sizeof值的大小分别为1,2,4,4,8: C++标模板库(standard Template Library,STL)里面提供了10种通用的容器类.vector(向量)中的元素是按照插入的顺序排列的:deque(队列)中的元素是按照进队列的顺序排列的:list中的元素是无序的:map中的元素是采用了平衡二叉树进行排列的,是为了具有更高的查询效率: 在所有类说明中,内部定义的成员函数都是内联函数 符…
根据c标准,char类型到底是有符号整数类型还是无符号整数类型,这取决于c实现,也就是c编译器的作者的想法:( 那么,如何快速的编写一个检测程序,查看当前编译器如何对char进行定义? #include <stdio.h> int main(){ printf(>?"un":""); ; } 我的机子输出: [root@noi ~]# ./t1 Type char is signed char. 关键语句: (>?"un"…
本次学习采用PIC16F877A芯片及HJ-5G 开发板 一.IO口操作 1.1 设置I/O口方向:input or output TRISx 方向寄存器 (Transport and Receive Index Storage) 1.2 设置I/O口的数值 PORTx 数值寄存器 端口 P.S.复位后初始状态:输入 数值为1 (记忆方法 input 1:output 0) //流水灯 void main(void) { uint8 i = 0; TRISD = 0X00; // while(1…
达内C++(陈宗权主讲) 第一天: 课程分为Core C++(标准C++.不依赖操作系统)和Unix C++. 1.配置bash,运行.sh文件. vi bash_profile 在"path="后面加入":.";path以":"分隔路径,加入"."表示当前文件夹可运行. 2.编程语言发展史: 二进制机器码->汇编(高效)->原始高级语言(Fortan等)->结构化编程语言(C语言等)->面向对象的编程…