三种重要的数字表示:
1无符码编码:
表示大于或等于零的数字,基于传统的二进制表示。
2 补码编码:
表示有符号整数的的最常见的方式,可以是正数也可以是负数。
3 浮点数编码:
表示实数的科学计数法的以二为基础的版本。(运算中不可结合)
溢出:
计算机的表示法是有限数量的位来对一个数字编码,因此当结果太大以致不能表示时,某些运算就会溢出。
大量计算机的安全漏洞是由于计算机算术运算的微妙细节引发的
虚拟存储器:
大多数计算机使用8位的字节(byte),作为最小的可寻址的存储单位。机器级程序将存储器视为一个非常大的字节数组,称为虚拟存储器。存储器的每个字节都有一个唯一的数字来标识,称为地址,都有可能的地址的集合称为虚拟地址空间。
指针:
指针有两个方面:值和类型。值表示某个对象的位置,而类型表示那个位置上所存储的对象的类型(比如整数或浮点数)
十六进制表示法:
二进制和十进制不是太方便,所以用十六进制(hex)使用数字"0"~"9"和字符"A"~"F"来表示16个可能的值,一个字节的值域为00~~FF。
在c语言中Ox或OX表示十六进制的值。字符“A”~“F”既可以用小写也可以用大写,或大小混合。
十进制转换为十六进制的命令行:
#!/uer/local/bin/perl
#Convert list of decimal number into hex
for($i=0; $i<@ARGV; $i++){
printf("%d = Ox/%x ", $ARGV[$i],$ARGV[$i]);
}
一旦这个文件可执行,即命令
unix> ./d2h 100 500 751
会产生输出;
c语言中数字数据类型的字节数:
字:
整数和指针数数据的标称大小。