补码与signde char

来源:互联网 发布:优秀女性知乎 编辑:程序博客网 时间:2024/06/04 01:35

  讨论的前提是char型是8位的

  8位的正数最大是多少?11111111,28-1,当然这只针对unsignde char,

对域signde char,8位的第高位是符号为,正数为0,负数为1,所以最大的正数为 01111111 ,27-1,127

最小的负数呢?这里就涉及负数在存放的时候都是以补码的形式存放,取反加1

最小的负数在没取补码的时候似乎是11111111,-127,补码为10000001

这样似乎signde char  的范围是 -127 ~ 127,但是对于8位的全排列,会出现两个0,及+0和-0

+0 00000000 -0 10000000

出现了浪费,于是乎 补码就规定 -0  1000000 为 -128

原创粉丝点击