首页 > 代码库 > 计算机内部整数的表示(二进制存储)
计算机内部整数的表示(二进制存储)
10、在16位机器上跑下列foo函数的结果是(B)(阿里2014笔试题)
void foo()
{
int i = 65536;
cout << i<<”,”;
i = 65535;
cout << i;
}
A、-1,65535 B、0,-1 C、-1,-1 D、0,65535
解析:16位机器的int型变量为16位
16位int的表示范围:-32768到32767
65535(十进制) = 1111111111111111(二进制)
65536(十进制) = 10000000000000000(二进制)
上面是原码表示 (也是计算机内部补码的表示)
转换为原码,除了最高位,其它位取反,加一
原码输出:分别为0和-1
验证:
#include<stdio.h>int main(){ __int16 a=65536; __int16 b=65535; __int16 c=65535+3; printf("十六进制输出:%x %x %x\n",a,b,c); printf("十进制输出:%d %d %d\n");}
输出:
十六进制输出:0 ffffffff 2十进制输出:0 -1 2
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。