首页 > 其他分享 >有符号与无符号数之间赋值的截断和扩展

有符号与无符号数之间赋值的截断和扩展

时间:2023-04-23 15:02:18浏览次数:27  
标签:操作数 符号 扩展 截断 十进制 赋值

长位宽赋值给短位宽的截断问题

  对于长给短,无论两个操作数有无符号,直接截断高位,直接赋值;

  赋值完成后,左操作数表示的实际数值要根据左操作数有无符号来判定。如果左操作数是无符号数,直接转换为10进制,如果是有符号数,如果最高位不是1,就说明是正数,直接转十进制,如果最高位是1,那么就按位取反加1,再将最高位换成1,表示成负数。

短位宽赋值给长位宽的扩展问题

  对于短给长,具体扩展是1还是0,完全取决于右操作数:

    1.右操作数是无符号数,则无论左侧是什么类型,高位都扩展0;

    2.右操作数是有符号数,则需要看右操作数的符号位,按照右操作数的符号位扩展。

    3.位宽扩展后左操作数是无符号数,就直接转换成十进制数值;如果是有符号数,如果最高位不是1,就说明是正数,直接转十进制,如果最高位是1,那么就按位取反加1,再将最高位换成1,表示成负数。

    4.需要注意的是,有符号数赋值给无符号数会出现数据错误的情况,需要避免这种情况。

标签:操作数,符号,扩展,截断,十进制,赋值
From: https://www.cnblogs.com/VicentZJ/p/17346546.html

相关文章

  • 通过反射获取进行字段赋值
    业务场景背景在以日期维度展示数据时,数据库中保存的数据一般会制作成宽表的形式比如:(id,projectNmae,projectID,indicator_name,indicator_value1,indicator_value1...,day)根据indicator_name获取对应指标,根据indicator_value获取对应周期数据,比如indicator_value1代表(da......
  • bat通过for来实现命令执行结果赋值输出方法
    前提知识点:变量赋值方法:setd=123变量使用方法:echo%d%命令结果赋值不能直接用,只能用for来赋值如:for/F%%iin('time/t')do(sett=%%i)即可将time/t的命令结果赋给变量t结果中如果有空格等分隔符,赋值结果会只为第一段内容,要把结果全赋值,需要加"tokens=\*"如:for/F"t......
  • Java:ArrayList初始化赋值
    测试环境$java-versionjavaversion"1.8.0_251"Java(TM)SERuntimeEnvironment(build1.8.0_251-b08)JavaHotSpot(TM)64-BitServerVM(build25.251-b08,mixedmode)方式一:常规方式List<Integer>list=newArrayList<>();list.add(1);list.add(......
  • xml 小于符号 纯文本
    xml中处理大于号小于号的方法 xml文件中是不识别<,>,会将xml本身的元素命名搞混,得出无法解析。Unescaped'<'notallowedinattributesvalueserrorin R第一种方法是转义字符,即将它们变为xml可以是别的形态:<       <     小于号  >       >......
  • 电解电容符号及使用方法
    符号1.隔直流:作用是阻止直流通过而让交流通过。2.旁路(去耦):为交流电路中某些并联的组件提供低阻抗通路。3.耦合:作为两个电路之间的连接,允许交流信号通过并传输到下一级电路4.滤波:这个对DIY而言很重要,显卡上的电容基本都是这个作用。5.温度补偿:针对其它组件对温度的适应性不够带来......
  • 4、复数类赋值
    如题,要求实现:1、复数类含两个参数的构造函数,一个为实部,一个为虚部。2、实现Add()功能,并实现返回值为复数类。3、Show出结果。#include<iostream>usingnamespacestd;classCmycomplex{private:intreal,imag;public:Cmycomplex(intr=0,inti=0);//构造函数......
  • R语言中这些你想知道含义又不知道怎么查的特殊符号
    特殊符号常用,但不好搜索,收藏起来做个备用,欢迎大家继续补充。():通常用于函数的调用,例如ggplot(data);或者调整优先级,如1:3+1返回234,而1:(3+1)返回1234。[]:用于索引向量、列表、数据框。[[]]:用于索引获得列表、数据框的具体值。$:用于数据框索引某一列。三者的区别,具体......
  • 这些21个不太好搜索其含义的特殊符号你都知道吗?
    Linux命令中有一些常用符号,看到时不一定好查询它们的功能和含义,这里列举一些常见的符号和解释,欢迎大家补充完善。|:管道符,在两个相邻命令之间传递数据;如ls|head把ls命令的输出传给head命令,只显示前10个文件/文件夹。*:通配符,通常用于匹配任意字符串,如ls*.fq.gz匹配当前目录下......
  • [oeasy]python0135_变量名与下划线_dunder_声明与赋值
    变量定义回忆上次内容变量就是能变的量上次研究了变量标识符的规则第一个字符应该是字母或下划线合法的标识符可以包括大小写字母数字下划线  还研究了字符串(str)的函数isidentifier查询字符串是否为合法标识符 ......
  • 记录一下因mybatis-plus版本不一致导致的实体主键id未赋值,新增失败问题
    记录一下因mybatis-plus版本不一致导致的实体主键id未赋值,新增失败问题mybatis-plus中对于id的赋值在packagecom.baomidou.mybatisplus.core;publicclassMybatisParameterHandlerimplementsParameterHandler{}中实现1)3.4.1版本中的实现如下,处理IdType.ASSIGN_ID和Id......