C语言中unsigned a的范围是多少?
因此 你的溢出了
所以变成了 -32768
如果你把声明修改为signed int a 就会正确输出32768
VC之所以显示正确是因为它是32位编译器,int为4个字节,而
TC是一个16位编译器,int只有2个字节。
-----------------
此题是考整数的存储方式--二进制补码,你只要熟悉这,应该不难。
unsigned a=32768;
这是一个无符号格式存储的数,
32768=(1000 0000 0000 0000)2
而后面把它以%d格式(即十进制有符号)输出,此时它以负数形式输出。
而当把它当成是有符号时,此时(1000 0000 0000 0000)2是一个负数的补码,(有的书上称这为输出转换)
这就涉及负数的补码怎么求?
用负数的绝对值-> 原码-> 取反得到反码--> 再加1--> 补码,
所以由补码求原来的负数是上面的逆过程
(1000 0000 0000 0000)2--> 减1
(0111 1111 1111 1111)2 取反
(1000 0000 0000 0000)22 得到绝对值的原码,即为32768,所以输出转换为-32768
C语言中如何输出长整型数值
在C\/C++中,64为整型一直是一种没有确定规范的数据类型。现今主流的编译器中,对64为整型的支持也是标准不一,形态各异。一般来说,64位整型的定义方式有long long和__int64两种(VC还支持_int64),而输出到标准输出方式有printf(“%lld”,a),printf(“%I64d”,a),和cout << a三种方式。本文...
汇编语言笔记(五)——流程控制
示例:一个简单的汇编程序,实现质数打印主要过程分解为prime函数,用于判断无符号数是否为质数,以及unsign2str函数,将整数转换为字符串。main_loop: cmp rax, 0 jz main_loop call unsign2str lea rdx, [string] mov r9, [temp] mov r8, rax mov rcx, [StdHandle] ...
汇编语言中的加减法~~~困扰我很久了。。有高人吗
这个问题要是考虑深了,还真有些东西呢,当然,要是简单的理解,那就很容易了。下面我就把这个东西尽量的扩展一点,深入一点和大家说说。一、只有一个标准!在汇编语言层面,声明变量的时候,没有 signed 和 unsignde 之分,汇编器统统,将你输入的整数字面量当作有符号数处理成补码存入到计算机中,...
C语言里a是一个无符号整形变量,语句a=a>15是什么意思?有什么作用?_百度...
1、a=a>15 ,这条语句首先执行的是,如果成立,则比较的结果就是非零值1,然后将1赋值给a(即a=1),如果a > 15不成立,则比较的结果就是0,,然后将0的值赋给a(即a=0);2、所以a的值不是1,就是0。因为你只给了一条语句,题目描述也不清楚,基本上是不能知道这条语句在整个程序中...
计算机c语言中 typedef struct {int num; }STYPE; 什么意思
是取别名的意思,之后可以用STYPE直接定义结构体,例如:STYPE test;test.num = 100;再比如:typedef unsigned short ushort;那么可以直接用ushort 来定义变量,如ushort val;和unsign short val等价。取别名也就是简化定义变量时的输入量,如unsigned short简化成了 ushort(当然还可以更短字符的)。
c语言问题
8、C语言中,若对变量存储类型无说明,则变量的默认类型是【 】A)static B)register C)auto D)unsign 9、分析以下程序结果【 】。double c=12345678.1234567;printf("%8.4lf\\n",c);A)12345678.1234567 B) 12345678.1235 C) 12345678.1234 D) 12345678 10、以下不正确的C语言标识...
一个简单的C语言赋值转换问题
这个取决于你用的是多少位的编译器,也就是取决于数据类型所占的字节数 我用的是VC,结果就是:4294967295 代码:include<stdio.h> include<string.h> int main(){ int a=-1;unsigned int b;b=a;printf("b = %u",b);return 0;} 因为VC是32位的,所以unsignde占4个字节,所以输出...
c语言 一个高难度问题!
定义方法:typedef strcut stBit_t { unsigned char bit0 :1;unsigned char bit1 :1;unsignde char bit2 :1;...128个 };解释一下,typedef一般可以加也可以不加,加的话,我们用这个结构体定义对象的话,就不用再加struct。(只在C语言中)内部首先 unsigned char是用来告诉我们我们所定义的位...
在C语言中,unsigned int a=65535 ; ………;printf("a=%d",a); 为什么...
a的类型是不带不符号,也就是说有一个变量为a的box中装入了一个数据,而printf中的%d又将a作为带符号数显示,在其他未明确指出时,a显示是一个不带符号数,而你使用了%d要求将a作为带符号数显示,那么显然显示的结果是-1,也就是说,如果a=95,printf("a=%c",a);则会显示成字符a呢!
C语言中如何定义一个从1~7的随机数。
srand( (unsigned)time( NULL ) );\/\/初始化随机数 \/* 打印10个随机数. *\/ for( i = 0; i < 10;i++ )printf( " %d\\n", rand() );} 在C语言中,是如何取得这个随机数的?一个语句:rand();它的作用就是随机取0到RAND_MAX之间的任何数。ANSI标准指出,RAND_MAX值的范围到少是...
缑使酮康: 0到65535. 举例: unsigned a; a=5; 或:unsigned int a; a=5; 16位系统中一个int能存储的数据的范围为-32768~32767,而unsigned int能存储的数据范围则是0~65535,在计算机中,整数是以补码形式存放的. 系统使用无符号数只表示大...
乐都县13851757159: C语言中的unsigned int是什么 - ?
缑使酮康: unsigned integer意思是“无符整型”,表示从0开始到2^32-1的所有整数.unsigned 后的int可以省略的. 具体用法如下: unsigned a; a=5; 或:unsigned int a; a=5; 16位系统中一个int能存储的数据的范围为-32768~32767,而unsigned int能存...
乐都县13851757159: c语言中signed 和unsigned是什么意思 - ?
缑使酮康: 1、signed是默认的,表示这个变量是有符号的,可以存储整数和负数. 2、unsigned则需要显示给出表示这个变量,没有符号值能存储数的大小,而且不能表示正负. 3、signed存储符号是有代价的,代价就是存储空间中的一个比特位专门用...
乐都县13851757159: 请问C语言中的unsigned类型只得是什么类型? 例:unsigned a; 仅仅是unsigned类型!不是unsigned int a;! - ?
缑使酮康: ungsiged 关键字是把变量声明为无符号类型的,它与变量的基本类型(如int ,long,double等)配合使用,当它所修饰的基本类型为int时,int可以省略,所以,像楼主所理解的ungsiged a; 和 unsigned int a; 是等价的,这个理解是没错儿的! 另外,如果你声明了一个 int a;则编译器默认它为有符号类型,即它等同于 signed int a;
乐都县13851757159: C语言中的定义整型变量时前面的unsigned是什么意思啊?
缑使酮康: 无符号,比如:int a,那么取值范围可以为负;如果是unsigned int a,那么就是只可能为0以上的整数,包括0.
乐都县13851757159: signed和unsigned在C语言中怎么样用,还有算术模2n定律是什么 - ?
缑使酮康: 用在声明变量的时候作为修饰 例如我要声明一个无符号的整型变量:unsigned int a; 普通的整型变量默认为有符号的,范围在-2147483648~2147483647 有符号的整型变量的范围在0~4294967295
乐都县13851757159: c语言中,unsigned变量%o,%x还是用%u表示,这3个里哪个范围最大一点 - ?
缑使酮康: 范围都是一样大,只是数的表示进制不同而已%O是八进制.%X是十六进制.%U是无符号数表示.
乐都县13851757159: 关于C语言的一个疑问 - ?
缑使酮康: 这个问题很好算.unsigned 是什么意思?不就是无符号吗?那么 c d 之中有负号,能对吗...
乐都县13851757159: c语言中(a=b)&&b - 3*a的值(要求解释!!!) - ?
缑使酮康: 按照你的表达式 优先求 a=b这个表达式,把b赋值给a,如果b为0则表达式为假,b不为0表达式为zhen.如果a=b为真,则进行“且”运算,判断 当b-3*a为真(非零)时整个表达式为真.否则仍然为假
乐都县13851757159: 1、什么是数值的范围?列出的数据类型各自的范围是多少?C语言 - ?
缑使酮康: 一个数据类型的数值范围,就是指该类型能表达的数字.超过数值范围的数字就不能表达.譬如说:short 型的数值范围是. 基本属性: (1)标识类属性:适用于数据元标识的属性.包括中文名称、英文名称、中文全拼、内部标识符、版本、...