unsigned/signed使用(c/c++)

unsigned/signed,同类型宽度都是一样,short占2字节共16个位,无符号可以完全利用这16个位来表示数字,就有2^16=65536中可能,可以表示0~65535,而有符号类型要用到最高位表示符号,2^15 = 32768,所以能表示-32768~32767,为了不出现两个0的情况,+0和-0,底层实现一般是用2的补码来表示负数,一个负数的二进制表示,可以由这个负数的绝对值的二进制表现形式取反再加1得到,

比如16位short值-1,绝对值是1,二进制表示为:0000 0000 0000 0001取反1111 1111 1111 1110 + 1 =1111 1111 1111 1111而正好这个数也是无符号型最大值65535的表现形式,所以对于这个二进制,是解释为65535还是-1,那就是printf里格式化的功能了。

采纳于:https://zhidao.baidu.com/question/518899275533973525.html
时间: 2024-10-07 14:31:45

unsigned/signed使用(c/c++)的相关文章

MariaDB基础(1)--数据类型

MariaDB介绍      MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品.在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB. MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎,它使用了Percona的 XtraDB,InnoDB的变体,分支的开发者希望提供访问即将到来的MySQL 5.

ios开发学习笔记004

进制 二进制   0 1组成,封2进1 八进制 0-7组成,封8进1 十进制 0-9组成,封10进1 十六进制 0-15组成,封16进1 printf以不同进制形式进行输出 变量的内存地址形式 变量在内存中是从高地址到低地址依次保存的,并且只保存二进制 查看内存地址的两种方式:%x和%p 各个类型变量的取值范围 类型修饰符 在64bit编译器环境下, int占用4个字节(32bit),取值范围是-231~231-1: short占用2个字节(16bit),取值范围是-215~215-1: lon

黑马程序员——C语言——内存分析

内存分析主要包括以下几部分内容:进制.类型说明符.位运算和关于char类型的一些内容. 一. 进制(二进制.八进制.十进制.十六进制) 1.二进制 ①  特点:只有0和1,逢2进1 ②  书写格式:0b或者0b开头 ③  使用场合:二进制指令\二进制文件,变量在内存中就是二进制存储 ④  二进制和十进制的互相转换 ⑤  n为二进制位所能表示的数据范围(不考虑负数):0~2的n次方-1 2.八进制 ①  特点:0~7,逢八进一 ②  书写格式:0开头 ③  八进制和二进制的互相转换 3. 十六进制

线程安全变量控制显示隐藏loading框

一.线程安全变量控制显示隐藏loading框 问题描述: 同一页面有两个异步网络请求,第一个请求开始,loading旋转,第二个请求开始loading旋转,第一个结束,loading停止旋转,可是这时第二个请求还没有结束,然后loading就结束了,于是问题就来了. 解决方案: 二.由上面问题引申出的问题: 1. #import <libkern/OSAtomic.h> 这段话是从网上copy过来的,总结了一下原子操作的作用.但是文中提到的osbase.h文件找不到.可能是因为版本升级我的li

第十一天:C基础之关键字

上课已经是第十一天,C语言的语法差不多要结束了.剩下的就只有扫尾操作.C语言一共有32个关键字.老刘先是列出这些关键字,然后讲平时没有讲过的. C语言关键字有:void int  char short long double float unsigned signed if else do while sizeof auto register const static enum typedef return break goto continue swich struct union case

线程安全-一个VC下多个网络请求

一.线程安全变量控制显示隐藏loading框 问题描写叙述: 同一页面有两个异步网络请求,第一个请求開始,loading旋转.第二个请求開始loading旋转.第一个结束,loading停止旋转,但是这时第二个请求还没有结束.然后loading就结束了,于是问题就来了. 解决方式: 二.由上面问题引申出的问题: 1. #import <libkern/OSAtomic.h> 这段话是从网上copy过来的.总结了一下原子操作的作用. 可是文中提到的osbase.h文件找不到.可能是由于版本号升级

MySQL数据类型--------整数类型实战

1. 背景 * MySQL支持SQL标准整数类型整数(或INT)和SMALLINT.作为标准的扩展,MySQL还支持整数类型TINYINT.MEDIUMINT和BIGINT 2.  整数类型所需的存储和值范围 类型 占用空间 最小值 最大值 (字节) (signed/Unsigned) (signed/Unsigned) TINYINT 1 -128 127 0 255 SMALLINT 2 -32768 32767 0 65535 MEDIUMINT 3 -8388608 8388607 0

Centos6.5x64 安装scrapy1.0.4成功

最近在自学爬虫框架scrapy,看了看官网文档,迫不及待动手安装.结果错误百出,惨不忍睹.网上搜了一篇文章,(原文链接 http://www.tuicool.com/articles/URNVV3E). 首先,介绍下环境: 1.Centos6.5 x64 安装在VMware虚拟机中,因为后期需要移植,遂选择了兼容vm10.0. # yum -y update 升级下系统 2.Python2.7.9.系统自带为2.6.6. cd ~/Download 管网下载源码: wget --no-check

C语言保留字大全

数值变量相关: int float double char long short unsigned signed 储存说明符 const 用于声明常量 static用于限制变量/函数的作用范围等等 extern 用于拓展作用范围 sizeof() 得到某一类型占地大小 控制语句: do while if else for switch case break continue default goto(这个不要随便用) return 声明新东东相关 void typedef A B; 之后B就代表