进制的表示与转换

进制

世界上有10种人 ,认识和不认识二进制的。

  1. 对于整数,有四种表示方式:

    二进制(binary):0,1 ,满2进1。以0b或0B开头。
    十进制(decimal):0-9 ,满10进1。
    八进制(octal):0-7 ,满8进1。 以数字0开头表示。
    十六进制(hex):0-9及A-F,满16进1。以0x或0X开头表示。此处的A-F不区分大小写。

  2. 进制转换:

    • 二进制转十进制:2的(位数-1)次幂的和。
    • 十进制转二进制:除2取余的逆。
    • 二、八、十六进制互转:从低位向高位,每3位二进制为1位八进制,每4位二进制为1位十六进制。
整数的二进制表示

正数(32位为例)

  • 正数的原码、反码、补码都相同

    // 6的原码、反码、补码相同
    00000000 00000000 00000000 00000110
    

负数

  • 原码:直接将一个数值换成二进制数,最高位是符号位。

  • 反码:对原码按位取反,符号位不变。

  • 补码:反码加1。

    // -6的原码
    10000000 00000000 00000000 00000110
    // -6的反码(原码取反,符号位不变)
    11111111 11111111 11111111 11111001
    // -6的补码(反码+1)
    11111111 11111111 11111111 11111010
    
模(Modulo)
  1. 模是一个计量系统的计数范围。如时钟(mod = 12)、星期(mod = 7)、64位计算机(mod = 263)等。

  2. 模是计量器产生“溢出”的量,它的值在计量器上表示不出来,计量器上只能表示出模的余数。如12的余数有0,1,2,3,4,5,6,7,8,9,10,11。

    // 以模为12的系统为例,假设将当前时针指向11点校准为8点,调整方式有两种:
    11 - 3 = 8	// 逆时针拨动4个小时
    11 + 9 = 12 + 8 = 8	// 顺时针拨动9个小时
    
    // 在以模为12的系统中,加9和减3效果是一样的,即3和9互为补数
    

    ps:在有模的计量系统中,减一个数等于加上它的补数,从而实现将减法运算转化为加法运算的目的。

补码原理
// 以4位的数据为例:11 - 3 = 8
// 等价于
11 + (16 - 3)
// 二进制表示:
1011 + (1 0000 - 0011)
// 等价于
1011 + ((1 + 1111) - 0011)
// 等价于
1011 + ((1111 - 0011) + 1)	// 即11+(-3的反码+1)
// 等价于
1011 + 1101	// 即11+(-3的补码)
// 得到结果
1000	// 1 1000 高位溢出,只保存4位
浮点数的二进制表示
数符阶码尾数
signexponentfraction

不同浮点数的表示情况:

类型数符阶码尾数总位数偏移值
float182332127
double11152641023

ps:偏移值=2(阶码位数-1)-1

表示过程
  1. 分别把整数部分和小数部分转换成2进制

  2. 将二进制数据用科学计数法表示

  3. 分别得出数符、阶码和尾数

    数符:浮点数为负,则为1;非负,则为0。

    阶码:阶数 + 偏移值。

    尾数:小数点后面的数。

// 例如:178.125
10110010.001	// 1.转化为二进制
1.0110010001 * 2^111	// 2.科学计数法表示
// 数符为:0,阶码为:111+01111111=10000110,尾数为:0110010001
0 10000110 01100100010000000000000

ps:由于科学计数法的最高位总是“1”,所以直接隐藏掉,同时节省了1个位出来存储小数,提高精度。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值