⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 教学--第四章 数据类型.htm

📁 《白话c++网页版》是一本用浅显易懂的并具有点幽默的语调来讲述c++的高深的内容
💻 HTM
📖 第 1 页 / 共 4 页
字号:
      <TABLE height=100 width="55%" border=1>
        <TBODY>
        <TR>
          <TD width="58%" height=19>二进制值(1字节)</TD>
          <TD width="42%" height=19>十进制值</TD></TR>
        <TR>
          <TD width="58%" height=19><FONT color=#ff0000>1</FONT>000 0000</TD>
          <TD width="42%" height=19>-128</TD></TR>
        <TR>
          <TD width="58%" height=19><FONT color=#ff0000>1</FONT>000 0001</TD>
          <TD width="42%" height=19>-127</TD></TR>
        <TR>
          <TD width="58%" height=19><FONT color=#ff0000>1</FONT>000 0010</TD>
          <TD width="42%" height=19>-126</TD></TR>
        <TR>
          <TD width="58%" height=19><FONT color=#ff0000>1</FONT>000 0011</TD>
          <TD width="42%" height=19>-125</TD></TR>
        <TR>
          <TD width="58%" height=19>...</TD>
          <TD width="42%" height=19>...</TD></TR>
        <TR>
          <TD width="58%" height=19><FONT color=#ff0000>1</FONT>111 1110</TD>
          <TD width="42%" height=19>-2</TD></TR>
        <TR>
          <TD width="58%" height=19><FONT color=#ff0000>1</FONT>111 1111</TD>
          <TD width="42%" height=19>-1</TD></TR></TBODY></TABLE>
      <P> </P>
      <P>首先我们看到,从-1到-128,其二进制的最高位都是1(表中标为红色),正如我们前面的学。</P>
      <P>然后我们有些奇怪地发现,<FONT color=#ff0000>1</FONT>000 0000 并没有拿来表示 -0;而<FONT 
      color=#ff0000>1</FONT>000 0001也不是拿来直观地表示-1。事实上,-1 用<FONT 
      color=#ff0000>1</FONT>111 1111来表示。</P>
      <P>怎么理解这个问题呢?先得问一句是-1大还是-128大?</P>
      <P>当然是 -1 大。-1是最大的负整数。以此对应,计算机中无论是字符类型,或者是整数类型,也无论这个整数是几个字节。它都用全1来表示 
      -1。比如一个字节的数值中:<FONT color=#ff0000>1</FONT>111 1111表示-1,那么,<FONT 
      color=#ff0000>1</FONT>111 1111 - 1 是什么呢?和现实中的计算结果完全一致。<FONT 
      color=#ff0000>1</FONT>111 1111 - 1 = <FONT color=#ff0000>1</FONT>111 
      1110,而<FONT color=#ff0000>1</FONT>111 
      1110就是-2。这样一直减下去,当减到只剩最高位用于表示符号的1以外,其它低位全为0时,就是最小的负值了,在一字节中,最小的负值是<FONT 
      color=#ff0000>1</FONT>000 0000,也就是-128。</P>
      <P>我们以-1为例,来看看不同字节数的整数中,如何表达-1这个数:</P>
      <TABLE width="100%" border=1>
        <TBODY>
        <TR>
          <TD width="16%">字节数</TD>
          <TD width="50%">二进制值</TD>
          <TD width="34%">十进制值</TD></TR>
        <TR>
          <TD width="16%">单字节数</TD>
          <TD width="50%"><FONT color=#ff0000>1</FONT>111 1111</TD>
          <TD width="34%">-1</TD></TR>
        <TR>
          <TD width="16%">双字节数</TD>
          <TD width="50%"><FONT color=#ff0000>1</FONT>111 1111 1111 1111</TD>
          <TD width="34%">-1</TD></TR>
        <TR>
          <TD width="16%">四字节数</TD>
          <TD width="50%"><FONT color=#ff0000>1</FONT>111 1111 1111 1111 1111 
            1111 1111 1111</TD>
          <TD width="34%">-1</TD></TR></TBODY></TABLE>
      <P> </P>
      <P>可能有同学这时会混了:为什么 1111 1111 
      有时表示255,有时又表示-1?所以我再强调一下本节前面所说的第2点:你自已决定一个数是有符号还是无符号的。写程序时,指定一个量是有符号的,那么当这个量的二进制各位上都是1时,它表示的数就是-1;相反,如果事选声明这个量是无符号的,此时它表示的就是该量允许的最大值,对于一个字节的数来说,最大值就是255。</P>
      <P>这一节课,看似罗嗦,但我希望每位没有编程基础,或者以前对进制,对负值、补码、反码等概念,对数据类型理解不透彻的学员,都能多花时间反复阅读,直到看懂得文中的每一张图表的意思为止。如果有困难,请发信到问答处的专门信箱:<A 
      href="mailto:wenda@bcbschool.com">wenda@bcbschool.com</A> 
      (为了方便我的查阅,请无关课程的问答或其它来信,不要发到这个邮址,谢谢)。</P>
      <P> </P>
      <H3><A name=4.3>4.3</A> 字符集和保留字</H3>
      <H4><A name=4.3.1>4.3.1</A> 字符集</H4>
      <P> </P>
      <P>字符集和保留并不专属于“数据类型”的基础知识。它是一门语言最基础的东西。就像字母A-Z对于英语的作用一样。我把它放到这里,更多的是因为这是我们第一次要碰到它,在下一节,马上就要用了。幸好, 
      它的难度和学会26个字母差多少。</P>
      <P>每种语言都使用-组字符来构造有意义的语句,组成C++程序的,最终的是以下这些字符(空格这个字符不好表示,就直接写上“空格”两字了,以后同):</P>
      <P>26个字母的大小写形式:ABCDEFGHIJKLMNOPQRSTUVWXYZ,abcdefghijklmnopqrst;</P>
      <P>10个阿拉伯数字:0123456789;</P>
      <P>其它符号:+ - * / = , . _ : ; ? \ " ' ~ | ! # % &amp; ( ) [ ] { } ^&nbsp; 
      &lt; &gt; (空格)</P>
      <P>其它符号,包括汉字,则可能作为程序中字符串的内容,用于显示等。</P>
      <P>最后,C/C++语言是区分大小的语言,也就是说ABC和abc并不相同。这一点我们将在下一章特别强调。</P>
      <P> </P>
      <H4><A name=4.3.2>4.3.2</A> 保留字</H4>
      <P>保留字也称关键字。它是预先定义好的标识符,这些标识符必须保留给C++语言自身专用。因为它们用来在编译过程中表示特殊的含义。比如,我们想定义一个量为整数类型,那么C++就必须有一个词来表示什么是整数类型,这个词就是一个关键字。</P>
      <P>C,C++主要的关键字,我们在章末附表列出。下面先列出本章要用的关键字。</P>
      <P>char&nbsp;&nbsp;&nbsp; :字符类型</P>
      <P>int&nbsp;&nbsp;&nbsp;&nbsp; : 整型</P>
      <P>float&nbsp;&nbsp; :单精度实型(浮点型)</P>
      <P>double&nbsp; : 双精度实型</P>
      <P>unsigned : 无符号类型</P>
      <P>signed : 有符号类型</P>
      <P> </P>
      <P>bool : 布尔类型</P>
      <P>true : 布尔类型的真值</P>
      <P>false : 布尔类型的假值</P>
      <P>void&nbsp;&nbsp; : 无类型</P>
      <P> </P>
      <P>sizeof : 取得指定类型的所占用的范围</P>
      <P>typedef : 为某种类型取一别名</P>
      <H3><A name=4.4>4.4</A> 基本数据类型</H3>
      <P>前面讲的一些有关数据类型的各种基本概念,下面是数据类型这一课真正开始的时候。如果在其中你有什么概念不能理解,最好的方法就是首先回头看本章前面的内容。</P>
      <H4><A name=4.4.1>4.4.1</A> 字符型和各种整型、实型</H4>
      <P> </P>
      <TABLE height=273 width="100%" border=1>
        <TBODY>
        <TR>
          <TD width="22%" height=19>类型标识符</TD>
          <TD width="19%" height=19>类型说明</TD>
          <TD width="10%" height=19>长度<BR>&nbsp; (字节)</TD>
          <TD width="29%" height=19>范围</TD>
          <TD width="20%" height=19>备注</TD></TR>
        <TR>
          <TD width="22%" height=18><B>char</B></TD>
          <TD width="19%" height=18>字符型</TD>
          <TD width="10%" height=18>1</TD>
          <TD width="29%" height=18>-128 ~ 127</TD>
          <TD width="20%" height=18>-2<SUP>7</SUP> ~ (2<SUP>7</SUP> -1)</TD></TR>
        <TR>
          <TD width="22%" height=19><B>unsigned char</B></TD>
          <TD width="19%" height=19>无符字符型</TD>
          <TD width="10%" height=19>1</TD>
          <TD width="29%" height=19>0 ~ 255</TD>
          <TD width="20%" height=19>0 ~ (2<SUP>8</SUP> -1)</TD></TR>
        <TR>
          <TD width="22%" height=18><B>short int</B></TD>
          <TD width="19%" height=18>短整型</TD>
          <TD width="10%" height=18>2</TD>
          <TD width="29%" height=18>-32768 ~ 32767</TD>
          <TD width="20%" height=18>2<SUP>-15</SUP> ~ (2<SUP>15</SUP> - 
        1)</TD></TR>
        <TR>
          <TD width="22%" height=19><B>unsigned short int</B></TD>
          <TD width="19%" height=19>无符短整型</TD>
          <TD width="10%" height=19>2</TD>
          <TD width="29%" height=19>0 ~ 65535</TD>
          <TD width="20%" height=19>0 ~ (2<SUP>16</SUP> - 1)</TD></TR>
        <TR>
          <TD width="22%" height=19><B>int</B></TD>
          <TD width="19%" height=19>整型</TD>
          <TD width="10%" height=19>4</TD>
          <TD width="29%" height=19>-2147483648 ~ 2147483647</TD>
          <TD width="20%" height=19>-2<SUP>31</SUP> ~ (2<SUP>31</SUP> - 
        1)</TD></TR>
        <TR>
          <TD width="22%" height=19><B>unsigned int</B></TD>
          <TD width="19%" height=19>无符整型</TD>
          <TD width="10%" height=19>4</TD>
          <TD width="29%" height=19>0 ~ 4294967295</TD>
          <TD width="20%" height=19>0 ~ (2<SUP>32</SUP>-1)</TD></TR>
        <TR>
          <TD width="22%" height=19><B>float</B></TD>
          <TD width="19%" height=19>实型(单精度)</TD>
          <TD width="10%" height=19>4</TD>
          <TD width="29%" height=19>1.18*10<SUP>-38</SUP> ~ 
            3.40*10<SUP>38</SUP>&nbsp;</TD>
          <TD width="20%" height=19>7位有效位</TD></TR>
        <TR>
          <TD width="22%" height=19><B>double</B></TD>
          <TD width="19%" height=19>实型(双精度)</TD>
          <TD width="10%" height=19>8</TD>
          <TD width="29%" height=19>2.23*10<SUP>-308 </SUP>~ 
            1.79*10<SUP>308</SUP>&nbsp;</TD>
          <TD width="20%" height=19>15位有效位</TD></TR>
        <TR>
          <TD width="22%" height=19><B>long double</B></TD>
          <TD width="19%" height=19>实型(长双精度)</TD>
          <TD width="10%" height=19>10</TD>
          <TD width="29%" height=19>3.37*10<SUP>-4932</SUP> ~ 
            1.18*10<SUP>4932</SUP>&nbsp;</TD>
          <TD width="20%" height=19>19位有效位</TD></TR></TBODY></TABLE>
      <P> </P>
      <P>unsigned 用于修饰 int 和 char 类型。它使int 或 char 类型成为无符号类型。</P>
      <P>signed 是 unsigned 反义词,如 signed int 
      表示有符号类型,不过signed可以省略,所以上面列出char,short int,int 都是有符号类型。</P>
      <P> </P>
      <P>有 short int (短整型) ,所以也就有对应 long int (长整型)。long int 
      用于表示4个字节(32位)的整数。但是在我们现在普通使用的32位计算机中,int 默认就是4个字节,所以long也是可以省略的。</P>
      <P>(较早几年,也就是Windows 3.1/DOS 流行的时候,那时的机器及操作系统都是16位的,这种情况下,int 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -