早教吧 育儿知识 作业答案 考试题库 百科 知识分享

计算机内负数以正数的补码(取反加1)形式存在,那么请问,符号位参与运算吗?你自述的正数的补码.计算机内负数以正数的(‘’正数的这‘’三个字是否可以去掉?)补码(取反加1)形式存

题目详情
计算机内负数以正数的补码(取反加1)形式存在,那么请问,符号位参与运算吗?你自述的正数的补码.
【计算机内负数以正数的( ‘’正数的这‘’三个字是否可以去掉?)补码(取反加1)形式存在,有符号字符数据在计算机内占一字节(8位),它的最高位是符号位,0表示正,1表示负,那么它能表示的最大负数以位表示是10000000,那么它减1( 得到的数值是什么,二进制形式表述?)再取反是10000000( 与上面那个10000000 有什么区别吗?)即十进制的128( 符号位现在变成了数值位?有符号数变成了无符号数?),它的最高位是1表示负数( 1表示符号为负?既做符号位也做数值位?)即-128】
在此我向你讨教几个问题,还望你不吝赐教.
上面问题全是应我不明白为什么补码能多表示一位 -128到127 而不是 -127到127?
▼优质解答
答案和解析
为了计算方便计算机CPU只做加法不做减法,所以人们发明的补码,补码的定义中正数的三个字不能去的,因为正数的补码是它自身,负数的补码是它的正数取反加1,有符号数最高位是符号位,专供符号使用,所以正数的最值0111 1111,即127,负数最大数为1000 0000,它减1为0111 1111再取反1000 0000(128,这是你换算的结果,最高为已经与符号位无关),即-128.
因为计算机内只分正负数,所以0当正数对待,所以有符号字符数据范围是-128~127,也就是0~127,-1~-128.