about 字节
关于由于赋值导致字节的截断、字节扩展及数据类型的提升:
一、字节截断:
int----->char 当一个字节(8位)放不下时,出现截断,直接取(最后一个字节)最后面面8位。 例如:100000000=256将256放在一个字符变量时,他就会截取后面的8位,放在字符变量中的那一个字节中,将最高位“1”,抛弃了。 所以以%d输出时,结果为0.
例如:
#include
int main(void)
{
int a = 256;
char c;
c = a;
printf("c:=%c\n",c);
return 0;
}
二、字节扩展:
char<----->int (短字节最高位是什么,之后长字节的3个字节就补什么)
单精度浮点型:float
%f:默认以double类型打印的
%.nf:小数点之后保留n位
%f:小数点之后保留6位,
float a=3.2 :意思:开辟一个大小为4字节、名称叫a的内存空间,并将3.2存入该空间
在赋值时,要输入的数后面加上f,以保证输入的数为4字节。
(因为一个常量小数占8个字节,默认是double型。)
例如:float a=3.5f;
float 开辟内存空间时,开辟4字节大小
双精度浮点型:double
double b=8.8 意思:开辟一个大小为8字节、名称叫b的内存空间,并将8.8存入该空间
double 开辟空间时占8字节。
三、数据类型提升
X
短字节向长字节看齐,
有符号向无符号看齐,
整数向浮点型看齐,
单精度向双精度看齐,
证明:短字节向长字节看齐 证明:有符号向无符号看齐:运算结果最后是无符号数。
#include <stdio.h>
#include <stdlib.h>
int main ()
{
unsigned int a =5;
int b=-20;
((a+b)>0)?printf("*"):printf("#");
return 0;
}
about 字节的更多相关文章
- lua执行字节码的过程介绍
前面一篇文章中介绍了lua给下面代码生成最终的字节码的整个过程,这次我们来看看lua vm执行这些字节码的过程. foo = "bar" local a, b = "a& ...
- TODO:字节的那点事Go篇
TODO:字节的那点事Go篇 (本文go version go1.7.3 darwin/amd64) 在Golang中string底层是由byte数组组成的. fmt.Println(len(&quo ...
- (转载)JAVA动态编译--字节代码的操纵
在一般的Java应用开发过程中,开发人员使用Java的方式比较简单.打开惯用的IDE,编写Java源代码,再利用IDE提供的功能直接运行Java 程序就可以了.这种开发模式背后的过程是:开发人员编写的 ...
- python注释、脚本参数、字节码
python注释.脚本参数.字节码 --道心 python安装 1.下载安装包 https://www.python.org/downloads/ 2.安装 默认安装路径:C:\python27 3. ...
- 为什么 C++ 中成员函数指针是 16 字节?
当我们讨论指针时,通常假设它是一种可以用 void * 指针来表示的东西,在 x86_64 平台下是 8 个字节大小.例如,下面是来自 维基百科中关于 x86_64 的文章 的摘录: Pushes a ...
- 字节、字、bit、byte的关系
字 word 字节 byte 位 bit 字长是指字的长度 1字=2字节(1 word = 2 byte) 1字节=8位(1 byte = 8bit) 一个字的字长为16 一个字节的字长是8 bps ...
- 大端字节序&小端字节序(网络字节序&主机字节序)
大端字节序:整数的高位字节存储在内存的低地址处,低字节存储在内存的高地址处. 小端字节序:整数的高位字节存储在内存的高地址处,低字节存储在内存的低地址处. 一般pc大多采用小端字节序,也称为主机字节序 ...
- C++编译期间字节序判断
当前常用的字节序一般就两种,大端序和小端序. 下面列出四种字节序的表达方式.在对应平台下,内存布局为{0x,00,0x01,0x02,0x03}的四字节,表示为十六进制的值就如下面代码所示的. END ...
- for循环每次取出一个字符(不是字节)
python3.5 for循环每次取出一个字符(不是字节) #!/usr/bin/env python # -*- coding:utf-8 -*- my_str = "我是哈哈" ...
- Nginx %00空字节执行php漏洞
Nginx如下版本:0.5.*, 0.6.*, 0.7 <= 0.7.65, 0.8 <= 0.8.37在使用PHP-FastCGI执行php的时候,URL里面在遇到%00空字节时与Fas ...
随机推荐
- 为什么对象序列化要定义serialVersionUID
对于实现了java.io.Serializable接口的实体类来说,往往都会手动声明serialVersionUID,因为只要你实现了序列化,java自己就会默认给实体类加上一个serialVersi ...
- 安装mariadb并修改配置文件
实验环境:CentOS7 #安装mariadb-server包#修改mariadb配置文件/etc/my.cnf.d/server.cnf#添加 skip_name_resolve=ON #不执行将I ...
- Jumony.Core非常厉害的一个开源项目!
简单的说,就是解析html文档的,以前发送一个get请求获取一个页面的html文本后,想要获取里面的数据都是使用正则表达式.(非常的苦逼), 现在用这个获取就very easy! 安装的话在Nu Ge ...
- 我推荐的一些C\C++书籍
原文链接: 我推荐的一些C\C++书籍 人们常常问我有什么C++和编程的书籍推荐,也许是因为我在PowerDNS有一个关于"编写可读性良好的C++代码"的演讲.这篇博文可以作为我对 ...
- @Deprecated使用技巧
本文转自 http://www.cnblogs.com/hzhuxin/p/4645070.html 我们在做项目时,前期写的类中的一些代码可能由于需求变化的原因需要重写,有时重写时方法的传参和返回值 ...
- 面试题: redis面试题 有用 redis详细
redis面试题目总结 2017-08-25 09:31:02 0个评论 来源:Java仗剑走天涯 收藏 我要投稿 (1)什么是redis? Redis 是一个基于内存的高 ...
- Impala介绍
Impala介绍 Impala支持的文件格式 Impala可以对Hadoop中大多数格式的文件进行查询.它能通过create table和insert的方式将一部分格式的数据加载到table中,但值得 ...
- maven 打JAR包资源文件指定路径与文件读取
1.配置RESOURCES节点 有时会遇到maven打包后找不到资源文件了,其实这时候路径发生了变化,为了确保打包后路径不发生变化,指定一个固定的路径,请看下面配置 <build> ... ...
- 6.6 安装IDEA
非常感谢Kevin指导.让我简化了安装步骤.安装包可以直接到我的公司文件夹中sunny文件夹中获取. 首先准备好安装包: 然后打开终端: 解压,进入bin目录,执行idea.sh;或者,直接运行: b ...
- 手写一个admin 组件------STARK
开一个新的项目,,建立一个stark 包, 在里面创建一个service包,在service 包里创建一个stark.py 文件, 配置好环境, makemigreations, migreate. ...