C/C++显示类型转换的位拓展方式
最近用verilator写模块的tb,在这里卡了好久(测半天都是C++写的问题)
要点
变量从小位宽到大位宽显示类型转换(explicit cast)时的位拓展方式,取决于转换前变量的符号性。
倘若转换前为无符号,则拓展为无符号拓展;反之则为有符号拓展。至于转换后的类型,是用来标记拓展后新值符号性用的,不决定拓展方式。
其实和verilog/systemverilog一致(有些忘了,记得有很多规则)。算是仅取决于RHS的情况
案例
uint32_t a = 0x83c60ce1;
printf("0x%016llx\n", a);		// 输出 0x0000000083c60ce1
printf("0x%016llx\n", (int64_t)a);	// 输出 0x0000000083c60ce1; (uint64_t也一样)
int32_t a = 0x83c60ce1;
printf("0x%016llx\n", a);		// 输出 0x0000000083c60ce1
printf("0x%016llx\n", (int64_t)a);	// 输出 0xffffffff83c60ce1; (uint64_t也一样)
C/C++显示类型转换的位拓展方式的更多相关文章
- Linux显示各栏位的标题信息列
		Linux显示各栏位的标题信息列 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ who -H 名称 线路 时间 备注 youhaidong :0 2015-0 ... 
- PHP中数据类型转换的三种方式
		PHP中数据类型转换的三种方式 PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有: 1.(int).(integer):转换成整形2.(float).(double).(real):转换成 ... 
- spring cloud 中Actuator不显示更多信息的处理方式
		spring cloud 中Actuator不显示更多信息的处理方式 直接咨询了周大立,他说 management.security.enabled = false 就可以了: 学习了:http:// ... 
- 指令集架构  x86-64  x86架构的64位拓展,向后兼容于16位及32位的x86架构
		https://zh.wikipedia.org/wiki/X86 x86泛指一系列英特尔公司用于开发处理器的指令集架构,这类处理器最早为1978年面市的"Intel 8086"C ... 
- C#之隐式与显示类型转换
		今天在看一篇有关数据类型的文章的时候,无意间看到了两个关键词,"隐式转换"与"显示转换",然后突然想起了当初开始学编程的时候,也总是在代码编译的时候遇到这样的问 ... 
- cocos2d-x 中添加显示文字的三种方式 LabelTTF 、LabelBMFont 和 LabelAtlas
		在 cocos2d-x 中有三个类可以在层或精灵中添加文字: LabelTTF LabelBMFont LabelAtlas LabelTTF 直接支持使用 TTF 字库,可以支持全部的中文,但是效率 ... 
- C#的隐式和显示类型转换
		原文地址:http://blog.csdn.net/yysyangyangyangshan/article/details/7494577 关于隐式转换和显示转换,每种语言都有的,C#中当然也不例外. ... 
- C# 中的隐式类型转换(运算时的隐式转换)和显示类型转换
		区别: 隐式转换失败编译会报错. 显示转换有可能精度丢失. 根据项目的编译设置,显示转换溢出可能会报错,如果设置溢出且未使用checked检查,运行时如果发生溢出会产出未知的计算结果. 在数字运算时, ... 
- C++中的显示类型转换
		本文参考了<C++ Primer(中文 第5版)>.<王道程序员求职宝典>以及网上相关博客,结合自己的理解写成.个人水平有限,若有错误欢迎指出. C++中显示转换也成为强制类型 ... 
- 关于Unity程序在IOS和Android上显示内嵌网页的方式
		近期因为有须要在Unity程序执行在ios或android手机上显示内嵌网页.所以遍从网上搜集了一下相关的资料.整理例如以下: UnityWebCore 从搜索中先看到了这个.下载下来了以后发现这个的 ... 
随机推荐
- docker保存、导入、导出和加载tar及其tar.gz
			一.操作tar包1.save和load命令save命令 docker save [options] images [images...]示例 : docker save -o nginx.tar ng ... 
- 【转载】 利用p6spy拦截并查看数据库执行操作
			https://blog.csdn.net/fanxiaobin577328725/article/details/71601760 一.简介 项目首 页:http://p6spy.github.io ... 
- PpcProcessResult
			@Data @Accessors(chain = true) public class PpcProcessResult { public static volatile int globalThre ... 
- 多线程极速导出/9字段10W行只需2秒/导入导出打印组件/功能丰富简单易用
			一.功能特点 组件同时集成了导出数据到csv.xls.pdf和打印数据. 所有操作全部提供静态方法无需new,数据和属性等各种参数设置采用结构体数据,极为方便. 同时支持QTableView.QTab ... 
- Qt交叉编译整理的几点说明
			关于交叉编译,对于初学者来说是个极难跨过去的砍(一旦跨过去了,以后遇到需要交叉编译的时候都是顺水推舟.信手拈来.),因为需要搭建交叉编译环境,好在现在厂家提供的板子基本上都是测试好的环境,尤其是提供的 ... 
- Qt编写可视化大屏电子看板系统15-曲线面积图
			一.前言 曲线面积图其实就是在曲线图上增加了颜色填充,单纯的曲线可能就只有线条以及数据点,面积图则需要从坐标轴的左下角和右下角联合曲线形成完整的封闭区域路径,然后对这个路径进行颜色填充,为了更美观的效 ... 
- Qt音视频开发26-ffmpeg播放器
			一.前言 用ffmpeg来实现自己的播放器,这是一直以来的一个目标,之前的难点卡在音视频同步以及如何播放声音这两点(尽管之前已经进行过不少的尝试和探索,但是问题还是挺多,比如音视频同步不完美,有些文件 ... 
- 阿里IM技术分享(八):深度解密钉钉即时消息服务DTIM的技术设计
			本文引用自InfoQ社区"5亿用户如何高效沟通?钉钉首次对外揭秘即时消息服务DTIM"一文,作者陈万红等.策划褚杏娟,有修订和改动. 一.引言 本文是国内企业IM的事实王者钉钉首次 ... 
- [开源项目]YOLOv8_Efficient
			Yolov8_Efficient Simple and efficient use for yolov8 About This is an unofficial repository maintain ... 
- JavaScript之Object.defineProperty()
			1. 对象的定义与赋值 经常使用的定义与赋值方法obj.prop =value或者obj['prop']=value let Person = {}; Person.name = "Jack ... 
