0
点赞
收藏
分享

微信扫一扫

计算机基础知识

Fifi的天马行空 2022-04-29 阅读 48
linux

计算机正负数表示

文章目录


前言

计算机基础知识


一.问题来源

1.一个小问题

"为毛 -x=!x+1 ???

二.源码,反码,补码

1.源码

2.反码:

正数的反码与原码相同,负数的反码为对该数的原码除符号位外各位取反。

3.补码:

==正数的补码与原码相同,负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1. ==

再举一例,我们来看整数-1在计算机中如何表示。 
假设这也是一个int类型,那么: 
1、先取-1的原码:10000000 00000000 00000000 00000001 
2、得反码:     11111111 11111111 11111111 11111110(除符号位按位取反) 
3、得补码:     11111111 11111111 11111111 11111111 



可见,-1在计算机里用二进制表达就是全116进制为:0xFFFFFF 

4.对一个数字节对齐可以

uint_t size;
size +=-size)& (AGLIN - 1);

主要知识点:

正数的反码和补码都与原码相同。
而负数的反码为对该数的原码除符号位外各位取反。
负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1

下面是书上原文:

举报

相关推荐

0 条评论