CSAPP translation page 1

2019-07-07  本文已影响0人  木子9268

1.1信息就是位(bits)+上下文(context)

我们的hello 程序生命开始就是一个源程序(或者称为一个源文件),创造它的程序员编辑并且把它保存为一个称为hello.c文本文件.这个源程序是一个里面的内容是0和1的位序列(sequence),8个位(bytes)被组织成一组(chunck),每一个字节代表程序里面的一些文本字符(text character).

(扩展:

一个位由0或1组成,8个位为一个字节Byte,每个字节表示程序中的某些文本字符,两个字节称为一个字Word-双字节,四个字节称为双字Dword-四字节

单字节和双字节:单字节只占1个英文字符;双字节是占两个英文字符,中文字符都占两个字节,4字节是指占四个英文字符,中文占两个字节也就是两个英文字符.

字节的换算:

1B/byte(字节)=8 bit(比特)

1KB(千字节)=1024B/byte(字节)

1GB=1024MB

1TB=1024GB

1PB=1024TB

1EB=1024PB

比特和位:

比特(bit)和位实际上是同一个东西,计算机智能处理二进制数据流,二进制的0和1就代表一个位.计算机中的32/64位置计算机的cpu一次能处理的最大位数.8字节等于64位,也就是说cpu可以一次处理8个字节的数据.

参考资料:百度百科-字节

)

大多数的现代(计算机)系统使用ASCII标准(American Standard Code for Information Interchange,ASCII,美国信息交换标准代码),它是用单字节的大小整数值(unique byte-sized integer value)表示每个字符.

hello.c程序是一个字节序列(sequence of bytes)的存储文件,每一个字节里面有一个整数(integer),一个整数对应(corresponds)着一个字符.例如,第一个字节里面有一个整数35,对应的字符是’#’,第二个字节的整数内容是105,对应的字符就是’i’,以此类推(and so on),注意,每一个文本行以看不见的(invisible)换行符(newline character)’/n’结束(terminated),它对应的整数内容是10.

像hello.c这样只(exclusively专门)由ASCII字符构成的文件称为(know as)文本文件.其他所有文件都称为二进制(ninary)文件。

hello.c的表示(representation)说明(illustrates)了一个基本概念(fundamental idea):所有的系统信息-包含磁盘文件,内存(stored in memory)中的程序,内存中的用户数据和通过互联网传输的数据-表示为(represented)一串(as a bunch)字节(bits). 区分(distinguishes )这些不同数据对象的唯一办法就是观察他们的内容.例如,不同的内容,相同的字节序列(sequence of bytes)可能(might)代表一个整数、浮点数、字符串或者机器指令(machine instruction).

作为一个编程者,我们需要明白,机器数字的表示形式(machinerepresentation of number),因为它们和整数和实数(real numbers)不同.整数和实数是一种表示不精确的表现(behave)是一个有限的(finite)近似值(approximation ).这个基本概念在第2章中进行探讨(explored).

图1.2 hello.cASCII文本表示:

上一篇下一篇

猜你喜欢

热点阅读