在字长为16位的微机系统中,一个整数以两个字节来存储,因此十进制整数的取值范围是-2^15~2^15-1.具体:两个字节

在字长为16位的微机系统中,一个整数以两个字节来存储,因此十进制整数的取值范围是-2^15~2^15-1.具体:两个字节存储?取值范围怎么算的
跳舞的苏珊 1年前 已收到1个回答 举报

quanchunlin 幼苗

共回答了17个问题采纳率:82.4% 举报

一字节为八位,每位可以存储一个数字0或1.最前一位为符号位,1为负,0为正,所以表示数可以用15位二进制数,因最前一位为符号位,范围是-32768~32767

1年前 追问

4

跳舞的苏珊 举报

那为什么减一呢?

举报 quanchunlin

第一位是1,默认为负数,如果要表示正数,第一位就要留作符号位

跳舞的苏珊 举报

那为什么减一呢?

举报 quanchunlin

因为二进制数最后一位数最大是1,如果将位数作为2的次数,就多加了一

跳舞的苏珊 举报

那为什么负数部分不要减一

举报 quanchunlin

由于c语言中有正负零之分,正负零的补码不一样,负零的补码为10000000.将负零合并到负零中去,这样负零的补码就空闲,为了扩充数的表示范围,在8位中将负零的补码其定义为-128的补码,在十六位中就定义为-32768的补码,-32768这个数虽然没办法用16位的源码来表示,但是可以用补码表示,故可以表示-32768

举报 quanchunlin

这是我今天刚听懂的,不好意思这么久才解释清楚
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.032 s. - webmaster@yulucn.com