位(bit)和字节(byte), 位指的是二进制系统中的一位,它是最小的信息单位。位的用处可以从两方面去分析:第一,计算机对位的值可以有任意多种解释,例如表示"yes’’或 "no”,或者表示磁盘是否已插入驱动器,或者表示某个鼠标键是否被按下;第二,将若干位的值连接起来后,就可以表示更复杂的数据,而且每增加一位,可以表示的可能的值的数目就会增加一倍。换句话说,一位可以表示两种可能的值,即“O”和“1”;两位可以表示2×2或4种可能的值,即“00”,“01”,“10”和“11”;类似地,三位可以表示2×2×2或8种可能的值……。对计算机来说,位的这种特性既是最有力的支持——因为很复杂的数据(例如本书内容)可以被分解为位的表示后存储起来,又是最大的限制——因为在现实生活中许多事物的值是不精确的,这样的值无法用数目有限的若干位来表示。 程序员始终必须清楚每一项数据需要用多少位来表示。因为位作为单位太小,所以为了方便起见,大多数计算机所处理的信息单位是被称为字节的位块。字节是大多数计算机中最小的可寻址的信息单位,这意味着计算机给每一个字节的信息都赋予一个地址,并且一次只能存取一个字节的信息。一个字节中的位的数目可以是任意的,并且在不同的计算机中可以不同。最常见的情况是每个字节中有8位,即可以存放256个不同的值。8位这样的长度非常适合于存放表示ASCII(the American Standard Code for Information Interchange)字符的数据。
【基本时间变量】Time_t是C/C++ 等编程语言在内部代表/存储日期和时间的一种数据类型。Time_t实际上是一个代表秒数的整数,当它的值为0时,代表的时间是1970年1月1日12:00:00;当Time_t=60时,则表示1970年1月1日12:01:00,依此类推。所有32位电脑系统都用带符号32位整型来存储time_t的值,也就是说t_time只能用31位二进制数来表示(第一位用来表示正负号),而其最大值转换为十进制是2147483647,换算成日期和时间刚好是2038年1月19日03:14:07am(GMT),而这一秒过后,t_time的值将变成-2147483647,代表的是1901年12月13日8:45:52pm,这样32位软硬件系统的日期时间显示就都乱套了。另外,无法接受time_t为负值的其他功能也将返回错误。要知道时间对于许多电脑程序来说都非常重要, 操作系统、数据库程序、电子表格软件、实时控制系统等无不涉及到时间。因此我们必须在Y2038 bug爆发前做好充足的准备。尽管到2038年,桌面PC和服务器基本上都将升级到64位甚至128位,但仍会有许多使用中的32位甚至更古老的系统。即使是在32位系统盛行的今天,大多数嵌入式系统仍是8位或16位的,而小型嵌入式系统的数量其实比台式机更多。如果使用64位数据类型,time_t最大可以表示公元292000000000年,是宇宙估计年龄的20倍。 【据说】随着各种计算机设备(服务器、路尤其、交换机、存储模块)的密度在数据中心的不断增多,和企业网络的扩大就需要愈来愈多的带宽资源,所以万兆以太网10G ethernet就来啦。