进制转换

来源:互联网 发布:ubuntu设置共享文件夹 编辑:程序博客网 时间:2024/06/11 19:57

11111111111111111111111111111111 是补码, 

计算机里的表现形式 1000 0000 0000 0000 0000 0000 0000 0001 是源码, 

-1 源码符号位不变,求反 + 1 就是补码【1111 1111 1111 1111 1111 1111 1111 1111】。

所以-1在计算机里就是11111111111111111111111111111111, 0 求反刚好是11111111111111111111111111111111




可以算一下 0x7FFFFFFF 是多少
每个十六进制数4bit,因此8位16进制是4个字节,刚好是一个int整型


F的二进制码为 1111
7的二进制码为 0111

                                                                                                                                     7       F      F      F     F      F      F       F
这样一来,整个整数 0x7FFFFFFF 的二进制表示就是除了首位是 0,其余都是1【 0111  1111 1111 1111 1111 1111 1111 1111】
就是说,这是最大的整型数 int(因为第一位是符号位,0 表示他是正数)


用 INT_MAX 常量可以替代这个值。




~0取反:表示最小值。

~0u表示无符号整形0

~0 >> 1 :表示最大值








---------------------------------

将4.4.4 的RGB颜色转换为8.8.8 的

0xF * 16 = 0XF0     


--------------------------------

  1. dx2 = dx << 1; // 2 * dx  
  2.     dy2 = dy << 1; // 2 * dy 


--------


0 0
原创粉丝点击