![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机基础
我就是多啦a梦
这个作者很懒,什么都没留下…
展开
-
字符编码ASCII, Unicode和UTF-8概念扫盲
今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗易懂,希望能对其他朋友有用。毕竟,字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识。1. ASCII码我们知道,在计算机内部,所有的转载 2016-03-09 11:00:24 · 410 阅读 · 0 评论 -
C语言内存对齐
一.内存对齐的初步讲解内存对齐可以用一句话来概括:“数据项只能存储在地址是数据项大小的整数倍的内存位置上”例如int类型占用4个字节,地址只能在0,4,8等位置上。#include struct xx{ char b; int a; int c; char d;};int main(){ str原创 2016-03-11 21:08:05 · 291 阅读 · 0 评论 -
程序占用内存分布
一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数名,局部变量的名等。其操作方式类似于数据结构中的栈。2、堆区(heap)— 由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、静态区(static)—全局变量和局部静态变量的存储是放在一块原创 2016-03-13 23:35:40 · 273 阅读 · 0 评论 -
儿子和女儿——解释器和编译器的区别与联系
菜鸟经常将编译器和解释器弄混淆,无奈之下,于是向高手请教。 高手说:“ 解释器是一条一条的解释执行源语言。比如php,postscritp,javascript就是典型的解释性语言。 编译器是把源代码整个编译成目标代码,执行时不在需要编译器,直接在支持目标代码的平台上运行,这样执行效率比解释执行快很多。比如C语言代码被编译成二进制代码(exe程序),在window转载 2016-03-13 23:47:00 · 333 阅读 · 0 评论 -
大端法、小端法及其判断方法
计算机存储数据都是从低地址到高地址,如0x100到0x103存储,而大端法和小端法的区别就是存储数据时是取数据的低位存放在高地址还是高位存放在高地址。大端法:数据低位存放高地址。小端法:数据高位存放高地址。举个例子,现有一个int a,地址为0x12 34 56 78,从左向右是高位到低位对大端法而言,存放顺序是,12 34 56 78;对小端法而言,存放顺序是78 56 34...原创 2018-09-04 21:43:48 · 1677 阅读 · 0 评论 -
sqrt函数实现之卡马克方法
sqrt函数的实现主要有三种方式:1 二分法2 牛顿法3 卡马克方法float InvSqrt(float x){ float xhalf = 0.5f*x; int i = *(int*)&x; // get bits for floating VALUE i = 0x5f3759df-(i>>1); // gives initi...原创 2018-09-13 16:51:51 · 1137 阅读 · 0 评论 -
sqrt函数实现之卡马克方法
sqrt函数的实现主要有三种方式:二分法牛顿法卡马克方法卡马克方法这里主要介绍高效的卡马克方法。卡马克方法起源于《雷神之锤III竞技场》中使用的平方根倒数速算法,下列代码是平方根倒数速算法在《雷神之锤III竞技场》源代码中的应用实例。示例剥离了C语言预处理器的指令,但附上了原有的注释:float Q_rsqrt( float number ){ long ...原创 2018-09-15 11:47:22 · 1222 阅读 · 0 评论