char 与 signed char 和 unsigned char三者之间的关系
char 与 signed char 和 unsigned char三者之间的关系
- 三者都占用 1个字节,即 8 bit
signed char取值范围(-128, 127)unsigned char取值范围(0, 255)- 三个内存中存储的都是一样的东东,只是在运算时进行解析的方式不同
- 其如何解析和编译器有关。不同的编译器对
char的解析不同,如将其定义为signed char的有:
- VC编译器
- x86上的GCC
将其定义为unsigned char的有:arm-linux-gcc
char可以当字符用,原始ASCII标准里定义的字符码值只有0~127,所以两种定义都装的下。char可以当单字节整数用,ASCII标准里的字符串都本质上是一个整数。unsigned char的高位扩展,以为没有最高的符号位,所以8位_bit_都作为了数值位,因此能表示(0~255)。但在屏幕上显示时可能会不同。
**测试代码: **
#include <stdio.h>
void f(unsigned char v)
{
char c = v;
unsigned char uc = v;
unsigned int a = c, b = uc;
int i = c, j = uc;
printf("----------------\n");
printf("%%c: %c, %c\n", c, uc);
printf("%%X: %X, %X\n", c, uc);
printf("%%u: %u, %u\n", a, b);
printf("%%d: %d, %d\n", i, j);
}
int main(int argc, char *argv[])
{
f(0x80);
f(0x7F);
return 0;
}
输出:
%c: ?, ?
%X: FFFFFF80, 80
%u: 4294967168, 128
%d: -128, 128
----------------
%c: ,
%X: 7F, 7F
%u: 127, 127
%d: 127, 127
char 与 signed char 和 unsigned char三者之间的关系的更多相关文章
- 【Linux网络编程】TCP网络编程中connect()、listen()和accept()三者之间的关系
[Linux网络编程]TCP网络编程中connect().listen()和accept()三者之间的关系 基于 TCP 的网络编程开发分为服务器端和客户端两部分,常见的核心步骤和流程如下: conn ...
- 程序中try、throw、catch三者之间的关系
c++程序中,采用一种专门的结构化处理逻辑的异常处理机制. 1.try语句 try语句块的作用是启动异常处理机制,检测try语句块中程序语句执行时可能出现的异常. try语句块总是与catch一同出现 ...
- silverlight Canvas、StackPanel、Grid三者之间的关系
学习 silverlight 首先Canvas.StackPanel.Grid 博客园里看到jailu的这篇文章整理得很好 贴下来: Silverlight提供了非常灵活的布局管理系统,让程序员和 ...
- 电脑结构和CPU、内存、硬盘三者之间的关系
前面提到了,电脑之父——冯·诺伊曼提出了计算机的五大部件:输入设备.输出设备.存储器.运算器和控制器. 我们看一下现在我们电脑的: 键盘鼠标.显示器.机箱.音响等等. 这里显示器为比较老的CRT显示器 ...
- 网络互联技术(2)——前篇—【转载】电脑结构和CPU、内存、硬盘三者之间的关系
原文链接:传送门 详细内容: 电脑结构和CPU.内存.硬盘三者之间的关系 前面提到了,电脑之父——冯·诺伊曼提出了计算机的五大部件:输入设备.输出设备.存储器.运算器和控制器. 我们看一下现在我们电脑 ...
- 转:spring data jpa、 hibernate、 jpa 三者之间的关系
原文链接:spring data jpa. hibernate. jpa 三者之间的关系 spring data jpa hibernate jpa 三者之间的关系 JPA规范与ORM框架之间的关系是 ...
- Window系统、主函数和窗体函数这三者之间的关系
理解Window系统.主窗体.窗体函数这三者之间的关系,对于编写Windows程序十分重要. 主函数和窗体函数都是由Windows系统来调用的函数.仅仅只是主函数是程序启动之后.系统首先调用的函数: ...
- 5.Javascript 原型链之原型对象、实例和构造函数三者之间的关系
前言:用了这么久js,对于它的原型链一直有种模糊的不确切感,很不爽,隧解析之. 本文主要解决的问题有以下三个: (1)constructor 和 prototype 以及实例之间啥关系? (2)pro ...
- 【面向对象】----【prototype&&__proto__&&实例化对象三者之间的关系】(四)-----【巷子】
1.构造函数 a.什么是构造函数? 解释:通过关键字new 创建的函数叫做构造函数 作用:用来创建一个对象 废话少说直接上代码,首先我们还是创建一个构造函数人类 然后我们在创建两个实例,一个凡尘 一个 ...
随机推荐
- Java的JsonHelper
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --> <dependency> <g ...
- C++ opencv 滑动条 Trackbary以及处理三通道和单通道图像
#include <opencv2\core.hpp> #include <opencv2\highgui.hpp> #include <opencv2\imgproc. ...
- java——newInstance()方法和new关键字
https://www.cnblogs.com/liuyanmin/p/5146557.html 这两个都可以创建一个对象,那么这样个东西有什么不一样呢?什么时候用new,什么时候用newInstan ...
- Vue.js-----轻量高效的MVVM框架(十一、使用slot分发内容)
#单个slot html: <h3>#单个slot</h3> <!-- 定义child01模板 --> <template id="child01& ...
- python 安装 第三方包
########1 (python 虚拟环境(如pycharm 中的 project )是一个独立的环境,所以也要重新安装一次第三方包) 上官网搜索 包 https://pypi.org/projec ...
- JQuery 判断滚动条是否到底部
BottomJumpPage: function () { var scrollTop = $(this).scrollTop(); var scrollHeight = $(document).he ...
- Django开发常见问题
1.Django设置中文,和时区.静态文件指向 #========================================================== # 设置时区 注意注释上面的:L ...
- css3制作梯形导航
/*HTML*/<div class="nav"> <a href="javascript:;">首页</a> <a ...
- (转)mkpasswd 的使用
原文:http://blog.csdn.net/u010339879/article/details/69788032 这个命令是随机生成 密码的一个工具, 如果没有这个命令,请安装相应的包. yum ...
- java 数字进制之间转换
//10进制转换 16进制 System.out.println(Integer.toHexString(val)); System.out.println(String.format("% ...