unsigned无符号、有符号类型的符号拓展
先看一段代码
#include <stdio.h>
main(){
unsigned char a = ;
char b = a;
printf("%d %d",a,b);
return ; }
a输出为128,b输出为-128。原因在于无符号类型和有符号类型像高精度转化时候不一样。
char类型长度是1个字节8位,而数字在计算机中是以补码形式存储的。 所以a=128在计算机内对应的值是0x80。把a赋给b,b的值也是0x80。
输出时候,printf会把a、b转化为int类型。而int类型是4个字节32位。关键在于char怎么转化为int。
转换的原则:有符号signed类型像高精度类型转换时候,符号位拓展;无符号unsigned类型像高精度类型转换时候,前面补0。
所以a是unsigned类型,char比int少了24位,在前面补0,a的值变成了0x0000 0080。
b是signed类型,在前面补1,b的值变成了0xFFFF FF80。
数字在计算机内是以补码形式存储的。
a的值是正数,补码是他本身,输出为128,b的补码求出来是-128。
unsigned无符号、有符号类型的符号拓展的更多相关文章
- C/C++编译和链接过程详解 (重定向表,导出符号表,未解决符号表)
详解link 有 些人写C/C++(以下假定为C++)程序,对unresolved external link或者duplicated external simbol的错误信息不知所措(因为这样的错 ...
- ArcGis实现添加MultiLayerMarkerSymbol(多个符号叠加生成新的符号)
, , ); pMarkerSymbol.Angle = ; pMarkerSymbol.XOffset = ;;;;, , ); ...
- (转载) C/C++编译和链接过程详解 (重定向表,导出符号表,未解决符号表)
转载http://blog.csdn.net/neo_ustc/article/details/9024839 有 些人写C/C++(以下假定为C++)程序,对unresolved external ...
- php将中文符号全部替换为英文符号
php将中文符号全部替换为英文符号 一.总结 一句话总结:可以用简单替换和规律替换 简单替换 str_replace() 规律替换 均相差 65248 方法一:简单替换(php代码) $val1=st ...
- php函数前面加&符号 和 变量前面加&符号的意义
php函数前面加&符号 和 变量前面加&符号的意义 php函数前面加&符号的意思是函数的引用返回,php函数前面加&符号有什么作用呢 function &tes ...
- 3星|华杉华楠《超级符号原理》:超级符号是指注册为商标的企业logo
“ 超级符号是私有财产,超级符号是通过对传统符号的改造,使之成为注册商标,成为私有化财产,通过占有它,让竞争对手无法使用.P112” 超级符号原理 作者: 华杉 华楠 出版社: 文汇出版社 出版年: ...
- MySQL学习----unsigned 无符号的总结
unsigned 为“无符号”的意思, unsigned,zerofill 既为非负数,用此类型可以增加数据长度, 例如如果 int最大是65535,那 ...
- PowerShell控制台输出符号+函数参数类型指定+文本内容读取
There are several ways: Write-Host: Write directly to the console, not included in function/cmdlet o ...
- 解决 “MoveFile”: 类型库“XXX.dll”中的标识符已经是宏;使用“rename”限定符 类型库符号与系统符号冲突问题
今天在VS工程当中引入一个组件,编译的时候出现警告, “MoveFile”: 类型库“XXX.dll”中的标识符已经是宏:使用“rename”限定符.虽然只是一个警告,但看着实在不爽,更重要的是,警告 ...
随机推荐
- AEAI Portal V3.5.4升级说明,门户集成平台
1 总体说明 本次升级是AEAI Portal的一次重要升级,主要扩展了开发社区(论坛).移动门户功能,同时修正一些功能BUG等,具体内容如下: 2 升级内容 功能扩展: 扩展开发社区导航 扩展移动门 ...
- Windows Phone 8.1低功耗蓝牙开发-Nokia Treasure Tag
1. 引言 上一篇文章<Windows 8.1 低功耗蓝牙开发>讲述了如何在Windows 8.1平台上创建低功耗蓝牙应用,并且以TI的Sensor Tag为例,给出了代码步骤和演示.其实 ...
- Linux sendmail发送邮件失败诊断案例(一)
在新服务器上测试sendmail发送邮件时,发现邮件发送不成功,检查日志文件发现如下错误(Notice:由于涉及公司服务器,邮箱等,故下面hostname.邮箱地址等信息使用xxx代替) tail - ...
- Flume组件source,channel,sink源码分析
LifeCycleState: IDLE, START, STOP, ERROR [Source]: org.apache.flume.Source 继承LifeCycleAware{stop() + ...
- C# Combobox 设置 value
因为ComboxItem是Object对象,而控件自身没有Value属性.所以,需要自定义一个类,用其对象来存储Text,Value. public class ComboxItem { ...
- MongoDB学习笔记~自己封装的Curd操作(查询集合对象属性,更新集合对象)
回到目录 我不得不说,mongodb官方驱动在与.net结合上做的不是很好,不是很理想,所以,我决定对它进行了二次封装,这是显得很必然了,每个人都希望使用简单的对象,而对使用复杂,麻烦,容易出错的对象 ...
- 【hive】——Hive sql语法详解
Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构 化的数据文件映射为一张数据库表,并提供完整的SQL查 ...
- mysql 常用sql
1.查询数据库.表的情况 show engines; #数据库的存储引擎show create TABLE User_Base_Info;#显示create table的sql语句show table ...
- C#基础-事件 继承类无法直接引发基类的事件
An event can be raised only from the declaration space in which it is declared. Therefore, a class c ...
- Windows Live Writer测试
第一次使用Windows Live Writer,一堆问题,不知道是中国强大的局域网防火墙问题还是咋的,弄了半天. 1.C++的测试代码: int _tmain(int argc, _TCHAR* a ...