C_位操作

本文详细介绍了二进制数、位和字节的概念,包括二进制整数、有符号整数和二进制浮点数。接着讲解了八进制和十六进制的转换,以及按位运算符的用法,如按位取反、按位与、按位或、按位异或和移位运算。最后提到了位字段和C11标准中的对齐特性。
摘要由CSDN通过智能技术生成

一、二进制数、位和字节

             1) 数字计算机通过关闭打开状态的组合来表示信息,这两种状态分别用01来表示

             2) 计算机以2为基底表示的数字被称为二进制数

    1.二进制整数

              1) 通常,1字节包含8位;C语言用字节表示储存系统字符集所需的大小

              2) 1字节(8位)从左往右分别编号7~0;每一位的编号对应2的相应指数

              3) 在1字节中,编号是7的位被称为高阶位编号是0的位被称为低阶位

              4) 通常unsigned char用一字节表示的范围是0~255signed char用一字节表示的范围是-128~+127

    2.有符号整数

             1) 有符号数用1位(如高阶位)储存符号,只剩下7位表示数字本身(假设储存在1字节中)

             2) 二进制补码用1字节中的后7位表示0~127高阶位位置为0;如果高阶位为1,表示的值为负

             3) 从一个9位组合100000000(256的二进制形式)减去一个负数的位组合,结果是该负值的量

         例: 假设一个负值的位组合是10000000

                作为一个无符号字节,该组合为表示128;

                作为一个有符号值,该组合表示负值,值为100000000 - 10000000 = 128,所以该数为-128

                10000001是-127,11111111是-1;该方法可以表示-128~127范围内的数

             4) 二进制补码的相反数反转每一位(即0变为1,1变为0),然后加1

             5) 二进制反码方法通过反转位组合中的每一位形成一个负数

    3.二进制浮点数

             1) 在二进制小数中,使用2的幂作为分母: 

                   例: 二进制小数0.101 表示为  1/2+0/4+1/8(1*2^-1+0*2^-2+1*2^-3)

             2) 为了在计算机中表示一个浮点数,要留出若干位存储二进制分数其他位存储指数

二、其他进制数

    1.八进制

            1) 八进制是指八进制记数系统;该系统基于8的幂,用0~7表示

                例: 八进制数0451:  4*8^2+5*8^1+1*8^0 = 297(十进制)

            2) 每个八进制位对应3个二进制位;将八进制数转换为二进制形式时,不能去掉中间的0

与八进制位等价的二进制位
八进制位 等价的二进制位 八进制位 等价的二进制位
0 000 4 100
1 001 5 101
2 010 6 110
3 011 7 111

    1.十六进制

            1) 十六进制是指十六进制记数系统;该系统基于16的幂,用0~15表示数字

            2) 由于没有单独的数表示10-15,所以用字母A-F表示

                例: 十六进制数0xA3F表示为: 10*16^2+3*16^1+15*16^0 = 2623(十进制)

            3) 由于没

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值