【002】有符号数据传递给无符号变量

【例2】 将有符号数据传送给无符号变量。

#include <iostream>

using namespace std;

int main( )

{

unsigned short a;

short b=-1;

a=b;

cout<<"b="<<b<<endl;

cout<<"a="<<a<<endl;

return 0;

}

【输出结果】

b=-1

a=65535

short  型 -1 的二进制为:1000 0000 0000 0001,

在计算机中补码表示为:1111 1111 1111 1111,

直接补码传给a,a又是无符号,则表示的是正数65535(即2^16-1).

时间: 2024-09-30 16:18:53

【002】有符号数据传递给无符号变量的相关文章

unity 登录注册页面数据传递(无数据库)

unity  登录注册页面数据传递(无数据库) 继上一篇随笔.制作unity登录注册页面. 创建一下脚本: 新建脚本"goa"(存储全局变量方便其他脚本的调用): using UnityEngine;using System.Collections; public class goa : MonoBehaviour { //用户名    public const string name = "M_name";    //密码    public const stri

&lt;&lt;,&gt;&gt;(有符号位移)和&gt;&gt;&gt;(无符号位移)的使用方法,及差别

<<  --  有符号左移 >>  --  有符号右移 <<<  --  无符号左移 >>>  --  无符号右移 无符号移位(>>>)和有符号移位(>>)的区别是: 有符号位移运算时如果数字为正数时位移后在前面补0,为负数时则在位移后在前面补1 例: 100<<2 4的二进制为 0110  0100 移除最后两位 0110  01 在前面补两个零 0001  1001 100>>2==25

java移位运算符:&lt;&lt;(左移)、&gt;&gt;(带符号右移)和&gt;&gt;&gt;(无符号右移)。

1. 左移运算符 左移运算符<<使指定值的所有位都左移规定的次数. 1)它的通用格式如下所示: value << num num 指定要移位值value 移动的位数. 左移的规则只记住一点:丢弃最高位,0补最低位 如果移动的位数超过了该类型的最大位数,那么编译器会对移动的位数取模.如对int型移动33位,实际上只移动了332=1位. 2)运算规则 按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零. 当左移的运算数是int 类型时,每移动1位它的第31位就

MVC总结--数据传递

View->Controller 1.传统方式,Get方式提交,在Controller中获得客户端请求: string Name = Request["name"]; string Id=Request .QueryString ["id"]; 2.超链接方式 在超链接中传参,改进了原来的<a></a> <%:Html .ActionLink ("链接","Index","Home

[C/C++]如何将一个无符号整型所有数据位置为1

正解「x = -1;」 -1超出无符号整型x的表达范围,根据标准(C++11 section 4.7.2),-1将被转化为2^n-1(n为x的bit数). 不正解 「x = 0xFFFFFFFF;」 这只适用于32bit整型. 不正解「x = ~0;」 这个被很多书认定为「标准答案」的解答也是错的.C/C++标准支持原码/反码/补码三种负数表示形式,只有在补码环境下才会得到正确结果.(例如在反码下,~0将得到-0,-0转为无符号仍然是0) 那么x = ~0u呢? 仍然是错的.根据标准(C++11

C#Winform基础 十六进制数转换为八进制数(整数,无符号)

镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ 1 UI 2 code 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using S

java中无符号类型的处理

在Java中,不存在Unsigned无符号数据类型,但可以轻而易举的完成Unsigned转换. 方案一:如果在Java中进行流(Stream)数据处理,可以用DataInputStream类对Stream中的数据以Unsigned读取. Java在这方面提供了支持,可以用java.io.DataInputStream类对象来完成对流内数据的Unsigned读取,该类提供了如下方法:(1)int   readUnsignedByte()    //从流中读取一个0~255(0xFF)的单字节数据,

C语言进阶剖析第二课--有符号和无符号

①计算机中的符号位 数据类型的最高位用于标识数据的符号 -最高位为1,表明这个数为负数 -最高位为0,表明这个数为正数 ②在计算机内部用补码表示有符号数 正数的补码为正数本身: 负数的补码为负数的绝对值各位取反再加1: ③在计算机内部用原码来表示无符号数 -无符号默认为正数 -无符号数没有符号位 对于固定长度的无符号数 MAX_VALUE + 1 =  MIN_VALUE MIN_VALUE - 1 = MAX_VALUE ④如果无符号数和有符号数相加,有符号数会转成无符号数,并且如果有符号数是

关于无符号整型数中1的个数与0的个数的改变与计算引发的思考

首先可以把unsigned int数中的1的个数与0的个数改变与计算的实现: </pre><pre name="code" class="cpp">/********************************************************************** * * Copyright (c)2015,WK Studios * * Filename: A.h * * Compiler: GCC vc 6.0 *