C语言基础数据类型(二)

计算机存储单位

1T = 1024G

1G = 1024M

1M = 1024KB

1KB = 1024B        //B ,即Byte,字节

1B = 8bit               //bit 比特,1bit就是一个二进制位,一个二进制位就是0或1

码制

1.机械值

计算机存储的数值,用二进制表示。

2.真值

机械值有符号之分,如果看做是有符号的数,那么最高位表示其符号值,机械值就表示其真值。

3.原码

符号位+真值表示原码,最高位表示符号位,其余位数表示数字值。

正数符号位表示为0,负数符号位表示为1。

正数1:         1 = [0000 0001]原

负数1:      -1= [1000 0001]原

因为CPU只有加法器没有减法器,所以计算机在进行减法运算是都是转换为加法

计算机在计算时,符号位会直接参与运算

5 + (-3)

0000 0101

1000 0011

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

1000 1000   ----(-8)结果错误  

4.反码 

正数的反码等于其原码

负数的反码在原码的基础上,符号位不变,其他数值位按位取反

+1 = [0000 0001]原 = [0000 0001]反

-1 = [1000 0001]原 = [1111 1110]反

5 + (-3)       反码进行运算,结果不正确

     0000 0001

     1111 1110

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

1  0000 0001    ------  最高位溢出   0000 0001 = 1

5.补码 

正数的补码等于其原码

负数的补码是在其反码的基础上加上1,符号位为1

+1 = [0000 0001]原 = [0000 0001]反 = [0000 0001]补

-1 = [1000 0001]原 = [1111 1110]反 = [1111 1111]补

计算机整数的存储都是以补码形式存储

5   +   (-3)        补码进行计算,结果正确

     0000 0001

     1111 1111

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

  1 0000 0010   ---------最高位溢出   0000 0010 = 2

6.零  0

原码

正 0 = [0000 0000]          负0 = [1000 0000]

1byte         能表示的范围[-127, 127]        总计255个数

反码

正 0 = [0000 0000]          负0 = [1111 1111]

1byte         能表示的范围[-127, 127]        总计255个数

补码

正 0 = [0000 0000]          负0 = [0000 0000]

1byte        能表示的范围[-128,127]        总计256个数

[-128] = [1 1000 0000]原 = [1 0111 1111]反 = [1 1000 0000]补

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值