什么是位,字节,字,字长,字符?
(1)位(bit):是电子计算机中最小的数据单位。每一位的状态只能是0或1,简写:b。
(2)字节(Byte):8个二进制位构成1个字节,它是存储空间的基本计量单位,大小 0-255 简写:B。
(3)字:由若干个字节构成,不同档次的机器有不同的字长。例如一台8位机,它的1个字就等于1个字节,字长为8位。如果是一台16位机,那么,它的1个字就由2个字节构成,字长为16位。
(4)字的位数叫做字长。
(5)字符:指计算机中使用的文字和符号,比如1、2、3、A、B、C、~!·#¥%*()—+、等等,字符的长度跟编码集有关系,如在UTF-8中,一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。常见的编码集:UTF-16,UTF-32,Unicode,ASCII.....
1B=8b 1KB = 1024B1MB = 1024KB1GB =1024MB
C++的基本数据类型:
上面所说的类型大小,是我在自己的64位操作系统上测得。每个系统和机器对类型的大小不一样,不要以为我的为标准,可以用 sizeof()这个函数来测量类型的大小。
有时我们遇到如下的类型:
Int16, 等于short, 占2个字节.-32768~32767
Int32, 等于int, 占4个字节.-2147483648~2147483647
Int64, 等于long, 占8个字节.-9223372036854775808~9223372036854775807
除去bool和其他扩展字符类型,数据类型可以分为有符号和无符号两种:signed,unsigned。
字符类型有三种:char,signed char,unsigned char.
字面值常量: 一个形如42的值。每个字面值常量都对应着一种数据类型,字面值常量的形式和值决定了它的数据类型。
整型字面值:
以0开头的整数代表八进制数,以0x或0X开头的代表十六进制数,如:
20 /*十进制*/ 024/*八进制*/ 0x14 /*十六进制*/
浮点数字面值:
表现为一个小数或以科学计数法表示的指数,如:
3.1415926 0e0
字符和字符串字面值:
有单引号括起来的一个字符称为char型字符值,双引号括起来的零个或多个字符则构成字符串类型字面值,如:
'a' "Hello World!"
有两类字符程序员不能直接使用:一类是不可打印的字符,如退格或其他控制字符,因为他们没有可视的图符。另一类是在C++中有特殊含义的字符(单引号,双引号,问号,反斜线),在这些情况下需要用到转义序列,转义序列均以反斜线开始。
转义序列(部分):
换行符 \n 横向制表符\t 报警符 \a 纵向制表符 \v
退格符 \b 反斜线\\ 问号 \? 回车号 \r
进纸符 \f 双引号\" 单引号 \'
上述的转义序列可当做一个字符来使用:
std::cout<<"\tHi!\n";
如果反斜线\后面跟着的八进制数字超过3个,只有前三个数字构成转义序列。
\x会用到后面跟着的所有数字。
布尔字面值: true ,false.
指针字面值:nullptr.