二进制整数表示法

一个字节通常包括8个位,这8个位可以从左到右看作是从7到0.

 

  7  6 5 4 3 2 1 0

 

  0  1 0 0 1 0 0 1(二进制数,该字节的值为,64+8+1 = 73)

 

128  64 32 16  8  4  2  1

 

位7称为高位,位0称为低位.每位数字都是2的指数.

 

于是128是2的7次幂,64是2的6次幂,依次类推.

 

这个字节所能存储的最大数就是所有位都为1的数,则是:11111111

 

值为:128+64+32+16+8+4+2+1 = 255

 

最小的数是所有位都为0的数,00000000.值就为0.则该字节可以存储的范围为:0到255总共256个值.

 

这个字节能够存储256个值,除了可以表示为0到255,也能够表示为-128到127之间的整数.总共还是256个值.

 

如一个unsigned char 可以表示0到255,一个singed char 可以表示 -128到127.

 

有符号数的最简单的表示方法就是保留一位(比如高位)来表示数的符号.在1个字节值中,该方法为数本身留下7位(即0到6位),如:

 

10000001表示-1,00000001表示1,这就是符号量(sign-magnitude)表示法,能够表达-127到127.

 

缺点是0的表示也分为+0和-0两种方法,这会引起混淆,而且用两个位组合表示一个值也有些浪费.

时间: 2024-10-03 14:02:27

二进制整数表示法的相关文章

《计算机科学概论》—第3章3.1节数据表示法

第3章 数据表示法在旅行时,你可能需要一张地图,可能是老式地图.折叠地图,抑或是电子地图.不论什么样子,地图并不是你游历的地点,而是这些地点的一种表示,它具有从一个地点到另一个地点所必需的信息.同样,我们需要一种方法来表示计算机存储和管理的数据,这种方法要能够捕捉信息的要素,而且必须采用便于计算机处理的形式.第2章介绍了二进制记数系统的基本概念,这一章将探讨如何表示和存储计算机管理的各种类型的数据.目标学完本章之后,你应该能够: 区分模拟数据和数字数据. 解释数据压缩和计算压缩率. 解释负数和浮

Verilog有符号数运算

在数字电路中,出于应用的需要,我们可以使用无符号数,即包括0及整数的集合:也可以使用有符号数,即包括0和正负数的集合.在更加复杂的系统中,也许这两种类型的数,我们都会用到. 有符号数通常以2的补码形式来表示.图1列出了4位二进制表示法所对应正负数.进一步观察,我们发现两种类型数的加减法是一样的,做加法和减法就是 在数轮上按正时钟转转或按反时钟转.比方说,1001+0100,意味着从1001按照顺时钟方向移动4个位置,其结果为1101.在无符号数类型中,它 代表(+9)+(+4)=+13:而在有符

按位“异或”运算符 (^)

运算   对两个表达式执行按位异或. result = expression1 ^ expression2 参数 result 任何变量. expression1 任何表达式. expression2 任何表达式. 说明 ^ 运算符查看两个表达式的二进制表示法的值,并执行按位异或.该操作的结果如下所示: 0101   (expression1)1100   (expression2)----1001   (结果) 当且仅当只有一个表达式的某位上为 1 时,结果的该位才为 1.否则结果的该位为 0

按位“异或”赋值运算符 (^=)

运算   对变量和表达式执行按位异或,并将结果赋给该变量. result ^= expression 参数 result 任意变量. expression 任意表达式. 说明 使用 ^= 运算符和使用下面的语句是等效的: result = result ^ expression ^= 运算符查看两个表达式的二进制表示法的值,并执行按位异或.该操作的结果如下所示: 0101 (result)1100 (expression)----1001 (结果) 当且仅当只有一个表达式的某位为 1 时,结果的

按位“或”运算符 (|)

运算   对两个表达式执行按位"或" result = expression1 | expression2 参数 result 任何变量. expression1 任何表达式. expression2 任何表达式. 说明 | 运算符查看两个表达式的二进制表示法的值,并执行按位"或"操作.该操作的结果如下所示: 0101   (expression1)1100   (expression2)----1101   (结果) 任何时候,只要任一表达式的一位为 1,则结果的

按位“或”赋值运算符 (|=)

运算   对变量值与表达式值执行按位"或",并将结果赋给该变量. result |= expression 参数 result 任何变量. expression 任何表达式. 说明 使用该运算符和使用下面的语句是等效的: result = result | expression |= 运算符查看 result 和 expression 的二进制表示法的值,并执行按位"或"操作.该操作的结果如下所示: 0101 (result)1100 (expression)---

按位“非”运算符 (~)

运算   对一个表达式执行按位"非"(取反). result = ~ expression 参数 result 任何变量. expression 任何表达式. 说明 所有一元运算符,如 ~ 运算符,以如下规则来求表达式的值: 如果将它用于 undefined 或 null 表达式,则产生一个运行时错误. 对象被转换成字符串. 如果可能,字符串被转换为数字.如果不能,则产生一个运行时错误. Boolean 值被当作数字(如果是 false 则为 0,如果是 true 则为 1). 用该运

按位“与”运算符 (&)

运算   对两个表达式执行按位"与". result = expression1 & expression2 参数 result 任何变量. expression1 任何表达式. expression2 任何表达式. 说明 & 运算符查看两个表达式的二进制表示法的值,并执行按位"与"操作.该操作的结果如下所示: 0101   (expression1)1100   (expression2)----0100   (result) 任何时候,只要两个表

按位“与”赋值运算符 (&=)

运算   对变量值与表达式值执行按位"与",并将结果赋给该变量. result &= expression 参数 result 任何变量. expression 任何表达式. 说明 使用该运算符和使用下面的语句是等效的: result = result & expression &= 运算符查看 result 和 expression 的二进制表示法的值,并对其执行按位"与"操作.该操作的输出如下所示: 0101 (result)1100 (