在c中将128分配给char变量

2024-01-05

输出是 128 的 32 位 2 的补码,即 4294967168。怎么样?

#include <stdio.h>
int main()
{
    char a;
    a=128;
    if(a==-128)
    {
        printf("%u\n",a);
    }
    return 0;
}

在打开警告的情况下编译代码会给出:

warning: overflow in conversion from 'int' to 'char' changes value from '128' to '-128' [-Woverflow]

这告诉你作业a=128;您的平台上没有明确定义。

标准说:

6.3.1.3 有符号和无符号整数

1 当一个整数类型的值转换为_Bool以外的其他整数类型时,如果该值可以用新类型表示,则该值不变。

2 否则,如果新类型是无符号的,则通过在新类型可以表示的最大值上重复加或减 1 来转换该值,直到该值在新类型的范围内。

3 否则,新类型是有符号的,并且值不能在其中表示;结果要么是实现定义的,要么引发实现定义的信号.

所以我们无法知道发生了什么,因为这取决于您的系统。

然而,如果我们做一些猜测(并注意这只是一个猜测):

128 作为 8 位将是 0b1000.0000

所以当你打电话时printf您可以在哪里转换为int将会有一个符号扩展,例如:

 0b1000.0000 ==> 0b1111.1111.1111.1111.1111.1111.1000.0000

其中 - 打印为无符号表示数字 4294967168

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在c中将128分配给char变量 的相关文章

随机推荐

  • 保存记录时未插入特定列

    我正在与CakePHP 1 3 13 在这里我编写了一段代码将表单插入数据库 在这里 交易数据库表如下所示 当我将记录插入数据库时 不会插入 coupon code 列 在这里 当我打印 this gt data 时 它将给出所有数据 例如
  • 如何在 XSL 和 for-each 语法中存储值?

    我的请求 XML 是
  • bash 合并文件中的行

    我想转换这个文本 qa ops01 mysite com dev mapper sys home 58G 26G 30G 47 home dev mapper sys tmp 3 9G 2 3G 1 5G 61 tmp qa ops02 m
  • 替代关系已弃用警告

    密码查询 MATCH x WHERE x uuid 41f64ab1 6009 4e95 b22b c833525f6edb MATCH p o CONTAINS HAVING gt x WHERE labels o IN Box Pack
  • 使用 Brunch 控制脚本串联的顺序

    使用 Brunch 时控制脚本 样式表连接顺序的最佳实践是什么 我的问题的一个简单版本涉及使用 Twitter Bootstrap 的应用程序 这需要 jQuery Bootstrap 要求首先加载 jQuery 最初我的供应商 目录中有以
  • 查看单个文件时,Xcode 快速帮助显示“无快速帮助”

    当我打开 Xcode 项目时 快速帮助功能工作得很好 但是当打开文件时 例如abc swift 不在打开的项目中 则不会出现文档 这是一个例子 安装该版本Command Line Tools为你的 Xcode Xcode menu gt O
  • 尝试序列化实体框架对象时出现 XML 序列化错误

    我有通过实体框架获取的实体 我使用的是 Code First 所以它们是 POCO 当我尝试使用 XmlSerializer 对它们进行 XML 序列化时 出现以下错误 方式 System Data Entity DynamicProxie
  • MySql select IN 子句字符串逗号分隔

    我需要按以下方式执行选择查询 select from my table where id NOT IN comma delimited string 实现这一目标的正确方法是什么 考虑到我控制发送字符串的客户端代码 是否有更好的方法 该字符
  • 根据R中的另一列删除重复日期

    我有一个时间序列 其中包含几个小时的多个条目 date wd ws temp sol octa pg mh daterep 1 2007 01 01 00 00 00 100 1 5 9 0 0 8 D 100 FALSE 2 2007 0
  • Magento:何时将变量传递给块,何时不传递?

    我最近发现使用分配方法在 toHtml 方法中将变量设置到块的强大功能 我的问题是 什么时候适合这样做 什么时候不适合 我正在创建一个新模块 在我看来 将所有变量分配给块并在视图文件中引用这些变量而不是设置类似的东西是非常好的 div di
  • 使用 Anaconda 安装 Pygame

    我正在尝试在 Mac 上安装 pygame 并遇到大量错误 我不能百分百确定这告诉了我什么 但它告诉了我很多 是不是说Pygame只兼容Python 3 5 因为 StackOverflow 上还有另一张票 在 Mac 上使用 anacon
  • 使用 gtag.js 获取客户端 ID

    谷歌发布gtag js https developers google com analytics devguides collection gtagjs 几个月前 作为 Google Analytics 跟踪的新方式 据我了解 最终取代了
  • Perl方法调用可以被拦截吗?

    你能在 Perl 中拦截一个方法调用 对参数做一些事情 然后执行它吗 是的 您可以拦截 Perl 子例程调用 我有一整章关于这类事情掌握 Perl http www masteringperl org 查看钩子 LexWrap http s
  • 如何将map转换为Spark的RDD

    我有一个数据集 它是一些嵌套映射的形式 它的 Scala 类型是 Map String LabelType Map Int Double 首先Stringkey 是每个样本的唯一标识符 value 是一个包含标签 为 1 或 1 的元组 以
  • Haxl 和 Stitch 中的并发数据访问

    这是我之前的后续question https stackoverflow com questions 27591599 are futures in scala really functional 据我了解Haxl http www cs
  • 如何将 Pillow EPS 调整为 JPG 质量

    我正在尝试使用 Pillow 将 EPS 图像转换为 JPEG 但结果质量较低 我正在尝试使用resize方法 但它被完全忽略了 我将 JPEG 图像的大小设置为 3600 4700 但结果图像有 360 470 尺寸 我的代码是 eps
  • Rails 对现有的 ActiveRecord 结果数组进行分页

    我通常在应用程序中使用 will paginate 进行分页 但我的搜索功能遇到了问题 我正在使用 Thinking Sphinx 进行全文搜索 它返回分页的结果 我遇到的问题是 在收到 Thinking Sphinx 的结果后 我需要将它
  • 使用带有子进程、Pipe、Popen 的 python 从 hdfs 读取/写入文件会出现错误

    我正在尝试在 python 脚本内读取 打开 和写入 hdfs 中的文件 但有错误 有人可以告诉我这里出了什么问题吗 代码 完整 sample py usr bin python from subprocess import Popen P
  • 我可以让堆太大吗?

    我明白 一个更大的堆意味着更长的 GC 暂停时间 https stackoverflow com questions 1651225 how to choose the jvm heap size 我对此表示同意 我的代码正在分析一些数据
  • 在c中将128分配给char变量

    输出是 128 的 32 位 2 的补码 即 4294967168 怎么样 include