文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>计算机中数的二进制表示

计算机中数的二进制表示

时间:2010-09-16  来源:Acikee

2010-9-11

今日内容:

       熊磊光老师 Email: [email protected]

              正数                     负数

              5                          -5

原码       00000101          00000101

反码       00000101          11111010按位取反

补码       00000101          11111011加一

位运算符

计算机中为什么会用补码表示负数?

如果用在正数最高位置1的方式表示负数会存在 0的表示不唯一,在计算机中做减法运算都是加一个负数实现的,如果用这种表示方式,需要经过:比较符号位,比较绝对值,加法改减法,减法改加法,小数减大数改成大数减小数……等运算,非常不便于做减法运算。

补码为什么是按位取反,末位加1的?

A,B 为八位二进制数。例子:(A)- (B)= (A)+(0xff + 0x01 – 0x100) –(B)

 = (A) +(0xff – (B) +1) -0x100= (A) + (B的补码) – 0x100(产生的高位溢出)。

显式类型转换,隐式类型转换

2010-09-13

今日内容:

       郭同彬老师:Email :guotongbin@akaedu.org。

       1.当小数据类型向大数据类型转换时要保证数据符号(正负)

       2.当大数据类型想小数据类型转换时采取截取的方式转换。

       当两个字符类型的变量相加时会产生整形提升,先将字符形变为整形,再做相加。

       当有符号数向无符号数转换时会先将有符号书转换为无符号数

       区分b << 1 和b <<= 1 前者b的值没有改变。浮点数做判断是否相等时,不能用==,需要判断其差是否为一个可控范围内 dx 是否小于某个值。

       objdump -ds file.o > file.s 对程序进行反汇编。sizeof 中的表达式 不做计算。任何小于整形的类型作运算时,都要作整形提升。

       位运算:&, |,^异或,~非,

       掩码:读操作,置1,归零运算。

              读:unsigned int a, b, mask= 0x0000ff00;

                     a = 0x12345678;

                     b = (a & mask) >> 8// 0x00000056;

              置1:unsigned int a, b, mask = 0x0000ff00;

                     a = 0x12345678;

                     b = a | mask; // 0x1234ff78;

              归零:unsigned int a, b, mask = 0x0000ff00;

                     a = 0x12345678;

                     b = a &~mask; //0x12340078;

       异或操作:

                     任何数和0异或总保持其原值,和1异或都会翻转原值。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载