C语言:signed和unsigned的区别

  参考博客:https://blog.csdn.net/wen381951203/article/details/79922220

signed和unsigned用于修饰整数类型(包括char,从ANSI C89标准开始支持)

signed表示有符号,unsigned表示无符号。对应的有符号数的最大取值要比无符号的小约一半,因为最高一位被用来表示符号

默认的int、short、long、long long为有符号数,也就是说,int等价于signed int,short等价于signed short,long等价于signed long,long long等价于signed long long,但是char本身是signed char还是unsigned char,取决于语言的实现(编译器)

范围列表如下:
signed char:[-2^7, 2^7)即[-128, 128)
unsigned char:[0, 2^8)即[0, 256)
signed n位整数:[-2^(n-1),2^(n-1))
unsigned n位整数:[0, 2^n)
注意整数类型占多少空间是不确定的,只能保证sizeof(shor)<=sizeof(int)<=sizeof(long)。一般32位平台上,int和long为32位,short为16位,long long为64位

原文地址:https://www.cnblogs.com/Mr-choa/p/12642051.html

时间: 2024-11-08 21:29:32

C语言:signed和unsigned的区别的相关文章

深度解析C语言int与unsigned int

就如同int a:一样,int 也能被其它的修饰符修饰.除void类型外,基本数据类型之前都可以加各种类型修饰符,类型修饰符有如下四种:1.signed----有符号,可修饰char.int.Int是默认有符号的.2.unsigned-----无符号,修饰int .char3.long------长型,修饰int .double4.short------短型,修饰int 我们主要来看一下signed和unsigned与int之间的联系与区别.什么叫做有符号,什么叫做无符号这个问题其实很简单,比如

C中signed与unsigned

1 unsigned int i=3; 2 cout<<i * -1; 问结果是多少. 第一反应:-3.不过结果似乎不是这样的,写了个程序,运行了一下,发现是:4294967293. 1)在32位机上,int型和unsigned int型都是32位的(4个字节). 2)enum会跟据最大值来决定类型,一般来说为int型,如果超出int型所能表示的范围,则用比int型大的最小类型来表示(unsigned int, long 或者unsigned long) 3)关于类型的大小.一般用所能表示的数

Bit operator: Left shift and Right shift (Signed or unsigned? )

No matter left shift or right shift, the result's sign should always be the same as its left operand. By default, const numbers in C/C++ is signed. -Wsign-compare { unsigned int j = 3; int k = 5; if (j == (1 << (j)));  //warning: comparison between

C语言各种存储模式的区别?最常用的存储模式有哪些?

DOS用一种段地址结构来编址计算机的内存,每一个物理内存位置都有一个可通过段地址一偏移量的方式来访问的相关地址.为了支持这种段地址结构,大多数C编译程序都允许你用以下6种存储模式来创建程序: -----------------------------------------------------------------------   存储模式              限制                    所用指针 -----------------------------------

动态样式语言Sass&amp;Less介绍与区别

一. Sass/Scss&Less是什么? Sass (Syntactically Awesome Stylesheets)是一种动态样式语言,语法跟css一样(但多了些功能),比css好写,而且更容易阅读.Sass语法类似与Haml,属于缩排语法(makeup),用意就是为了快速写Html和Css. Less一种动态样式语言. 将CSS赋予了动态语言的特性,如变量,继承,运算, 函数. LESS 既可以在客户端上运行 (支持IE 6+, Webkit, Firefox),也可一在服务端运行 (

char与unsigned char 区别

char 与 unsigned char的本质区别 http://bbs.csdn.net/topics/270080484 同一个内存内容:10010000 你用char*   解释是-112 你用unsigned   char*   解释是144 还是同样这个内存内容赋给整型值,用unsigned   char   类型还是会得到144,用char类型的就会是负数. 真正的差别还是取决于你的程序.某些情况这两种类型表示都行. 补充一下: char 可能是signed char,也可能是uns

c语言与java的一些区别注意点

// java数据类型 和长度int 4个字节 double 8个字节 float 4个字节 long 8个字节 // short 2个字节 boolean 1个字节 char 2个字节 byte 1个字节 // char, int, float, double, signed, unsigned, long, short and void// c语言中 数据类型比java少一些 在c语言中没有 boolean类型的数据 int 1 代表真 0 代表假// c 语言中没有String类型的数据

signed和unsigned

signed:表示有符号位,最高位包括正数.负数和0: unsigned:表示无符号位,最高位表示 数值,不表示符号: signed int a:a 的取值范围是:-2^..... 这个就想不起来要占几位了.. 大学时,学了2遍编译原理,还是没有学会...悲了个催的.

C语言里int,unsigned int,shor int...转换输出问题

这问题,有时候是个困扰,抽空梳理一遍. signed char->unsgned char:%c->%c 0->127(对应范围) char->int:%c->%d->%c,'A'->65(可打印字符表对应) short int->int:%d->%d,100->100(对应,反向操作若超出范围,循环读取对应) short int->unsinged int:%u->%d,(对应,反向操作若超出范围,循环读取对应) unsigned