欢迎光临
箫启灵个人站点

[逆向学习日志1] 进制,数据宽度,有符号数,无符号数,源码反码补码

计算机进制

3进制,就是由三个符号 0 1 2组成,逢三进一

10进制,就是由十个符号组成,逢十进一

N进制,就是由N个符号组成,逢N进一

符号随便定

任何进制,都是可以独立进行加减乘除运算。  进制如果用得好,以后可以用于加密自己的数据,增大破解难度。

在计算机中,只认2进制(除去某些特殊计算机)

数据宽度概念

计算机中,受硬件约束,存储数据都是有长度限制的。这个限制,就称之为数据宽度。如果你存储的数据,超过了数据宽度,就会被丢弃。 

通常,数据宽度有这么几个单位 

 bit(位)        代表最小单元 

 byte(字节)       1 byte = 8 bit

 world(字)      1 world = 2 byte

 doubleworld(双字) 1doubleworld=2world

其他语言,例如java 数据类型数据宽度如下:
byte 1个字节
short 2个字节
char 2个字节
int 4个字节
long 8个字节
float 4个字节
double 8个字节

堆栈缓冲区溢出才会终止程序报错

正常的数据宽度溢出,只能算是丢失精度,并不会报错

有符号数,无符号数  源码反码补码

内存中存储数据的时候,都是补码,至于你这个是不是有符号数,都是你怎么去使用,怎么申明

无符号数的编码规则

1、无符号数,是什么就存什么

2、所有的数都是补码存储的

3、有符号数正数的原码反码补码都一样。 跟无符号数一致

有符号数的编码规则

原码:

    最高位为符号位,其余各位为数值本身的绝对值,首位为0则为正数,首位为1则为负数

反码:

   正数:反码与原码相同

   负数:符号位为1,其余位对原码取反

补码:

   正数:补码与原码相同

   负数:符号位为1,其余位对原码取反加

有符号数

正数最大范围 00-7F    

负数最大范围 FF-80    (FF就是-1)

这也是编程语言中 byte类型的取值范围   正127 – 负128

未经允许不得转载:箫启灵博客 » [逆向学习日志1] 进制,数据宽度,有符号数,无符号数,源码反码补码

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

刺蝴蝶De箫启灵

作死购站点VIP视频站站点