大话编程(二)

简介: 2013年1月15日 12:45:13 上次说道数据类型和控制语句.   我们在数学几何中学过,点,线,面 多个点组成线,多条线组成面,多个面组成体 在(一)中的说的那个抽象出0,1的电路,在编程中可以看作是"点线面"中的'点',名字叫bit(比特) 8个这样的'点'并排放在一起就成了一...

2013年1月15日 12:45:13

上次说道数据类型和控制语句.

 

我们在数学几何中学过,点,线,面

多个点组成线,多条线组成面,多个面组成体

在(一)中的说的那个抽象出0,1的电路,在编程中可以看作是"点线面"中的'点',名字叫bit(比特)

8个这样的'点'并排放在一起就成了一条线段了,多条'同样长度'的线段组合在一起就成了面:

其中,这个长度为8bit的线段,又叫一个'字节'(Byte),这就是书上说的一种常见的基本数据类型'char'(字符型)的结构了

(以下没明确说明都是指c语言)

下边根据'点线面'的知识讲讲数据类型:

编程语言中有一种基本数据类型叫字符型(char),它的本质就是8个这样的'点'组成的结构(嗯,如果你愿意,只要是由两个这样的'点'以上组成的结构都可以叫做数据结构)

好规律来了:

   

 

好,字符型-字符数组;整形-整形数组;浮点型-浮点型数组;每当你遇到一种基本数据类型(线),把它重复几次就叫做什么什么数组了(面)

55AA55AA55AA55AA55AA55AA55AA55AA55AA55AA55AA55AA55AA55AA55AA55AA55AA55AA55AA55AA

2013年7月9日 10:27:29

数据类型的本质就是告诉编译器:你在知道标识符在内存中的首地址的情况下,一次取多长就能够把该变量取完

所以一种数据类型必须要保存该类型的长度,不论它是基本数据类型(int,char...)还是复杂数据类型(Sting,class...)

另外,讲讲编码:

这8个点每个点有0和1两种状态,那么会有2^8=256种排列组合,可以表示256种字符

先看看ascii码(美国国际交换码):它是用来描述英文字符(a-z),阿拉伯数字(0-9),以及一些其它美国人用到字符的,数目是127个

对美国人来说,这8bit已经足够了,因为计算机是美国人发明的嘛,

但是随着发展,要想在计算机显示器上显示其它国家的文字怎么办呢?

比如说汉字,常用的就几千个了,8个bit的排列组合数根本不够,那么中国人要自己编码,当然个数就超过8了,但仍然是8的倍数,16或24或32等等

如国标系列GBK,GB2312等等(区别在于排列组合对应汉字的个数不同,有的只有简体中文,有的还包括了繁体中文,藏文等等)

那其它国家呢,也要用计算机显示自己的文字,这就乱套了,出现了乱码(他们都兼容美国人的编码,一般没发现英文和数字出现乱码的),

因为一个国家的编码可以保证自己的每一个排列组合只对应一个文字,但不同国家之间的编码,同一种排列组合的bit串,可能对应两种不同的语言中的不同的文字,在同一台计算机上显示时就乱码了

这时,就出来了一种以utf开头的编码方式,它提供一种编码规则,任何国家只要按这种规则编的码(排列组合),就不会和其它国家的编码冲突

我们常用的就是utf-8这种规则

目录
相关文章
|
5月前
编程题小练
编程题小练
37 0
|
设计模式 算法 安全
给大家推荐10本最优秀的编程书
给大家推荐10本最优秀的编程书
413 0
|
Linux
linux模块化编程
linux模块化编程
259 0
7-188 编程团体赛
7-188 编程团体赛
196 0
|
JavaScript 前端开发 Java
|
程序员
编程会是你自由职业的一种选择吗
欢迎来到我的小院,前几天有个曾经我带过小弟问我,大侠我最近想从事自由职业,你能帮我参谋参谋嘛,我很高兴他来咨询我。思考后,我写了这段建议,希望可以帮助到他,同时也能给想从事自由职业的年轻人一些参考。
编程会是你自由职业的一种选择吗
编程题
7.一个采用查询方式输出数据的 I/O 接口中,8 位数据端口地址为 2000H,1 位 状态端口地址为 2002H,外设状态位用 D0 传送,高电平表示数据准备好。设 1000 个字节数据存在内存 BUFFER 为首地址的缓冲区中,写出查询方式输出 1000 个 字节数据的程序段。 LEA SI,BUFFER MOV CX,1000 P: MOV DX,2002H L: IN AL,DX TEST AL,01H JZ L MOV DX,2000H MOV AL,[SI] OUT DX,AL INC SI LOOP P HLT 8.编写完整程序,将键盘输入的小写字母转换成大写字母并输出显示,直
152 0
|
Web App开发 移动开发 前端开发
Day 26: TogetherJS —— 让我们一起来编程!
今天的《30天学习30种新技术》挑战,我打算学习一个源自Mozilla的很酷的JavaScript库——TogetherJS。几个月前,我写过一个面向Java 8的在线Java编辑器。今天我将学习如何使用TogetherJS来给这个应用增加协作功能。
196 0
Day 26: TogetherJS —— 让我们一起来编程!
|
Java 程序员
我似乎理解了编程的意义
编程的意义是什么,我又为什么要编程呢? 这是一个不时会浮现在我脑海中的问题,它来得并不频繁,但每次却都伴随着对自己职业生涯或人生目标的质疑而产生,令我感到些许困惑和不安。而在这十几年的职业生涯中,我也似乎总能在每个阶段为自己找到一个继续热爱编程的理由,直到它已无法解答再一次疑惑的产生。
1100 0