首页 > 其他分享 >麻了,麻了,终于知道c语言为啥那么容易从入门到放弃了

麻了,麻了,终于知道c语言为啥那么容易从入门到放弃了

时间:2024-07-25 20:55:38浏览次数:16  
标签:11111111 输出 10000000 入门 符号 00000000 为啥 整型 放弃

麻了,麻了,这谁看不迷糊。 (温馨提示:出题时程序一般不会将每一种情况列出,会选其中一个或多个;请勿以答案相同认为思路相同)

见了这种题怎么办?

猜?这多少分之一的概率?

死记?它变个数字又不同了,那得记多少?

放弃?好像只能这样了。(不行,不行)

今天,博主来教你们彻底解决这些问题。

众所周知整数有三种存储形式:原码、反码、补码,在内存中为补码。 (若不清楚原码、反码、补码或不明白进制转换,建议先对其进行学习)

128的原、反、补码相同为:(8位二进制一组便于观察,整体为4字节整型)

00000000 00000000 00000000 10000000

以char形式(包括unsigned char,大小均为一字节)存储入内存中为:10000000。其中unsigned char形式无符号位以%d形式输出,先以无符号形式整型提升(全补0)变为:

00000000 00000000 00000000 10000000

再以整型(有符号位、十进制)输出即128。以%u形式输出,加粗部分不变,以无符号整型输出(最高位不作符号位而为数值),仍为128

其中char形式有符号位以%d形式输出,先以有符号形式整型提升(全补符号位(符号位为二进制最高位))变为:

11111111 11111111 11111111 10000000

再以整型(有符号位、十进制)输出,因其符号位为1是负数原、反、补码不同,化为原码变为

10000000 00000000 00000000 10000000十进制为-128。以%u形式输出,加粗部分不变,以无符号整型输出(最高位不作符号位而为数值),为4294967168。

-128的原、反、补码不同,先用原码推至补码

10000000 00000000 00000000 10000000        --原码

11111111 11111111 11111111 01111111               --反码(原码符号位不变,其它位取反)

11111111 11111111 11111111 10000000             --补码(反码加1)

以char形式(包括unsigned char,大小均为一字节)存储入内存中为:10000000。

其中unsigned char形式无符号位以%d形式输出,先以无符号形式整型提升(全补0)变为:

00000000 00000000 00000000 10000000

再以整型(有符号位、十进制)输出即128。以%u形式输出,加粗部分不变,以无符号整型输出(最高位不作符号位而为数值),仍为128

其中char形式有符号位以%d形式输出,先以有符号形式整型提升(全补符号位(符号位为二进制最高位))变为:

11111111 11111111 11111111 10000000

再以整型(有符号位、十进制)输出,因其符号位为1是负数原、反、补码不同,化为原码变为

10000000 00000000 00000000 10000000十进制为-128。以%u形式输出,加粗部分不变,以无符号整型输出(最高位不作符号位而为数值),为4294967168。

注重点:整型提升不以输出时的有无符号位决定而以创建时的有无符号位决定。

如此看来,这也不难,明其道理可举一反三,所以学习虽不易,但请勿放弃。

如果这篇文章对你有帮助请点个关注和赞。

标签:11111111,输出,10000000,入门,符号,00000000,为啥,整型,放弃
From: https://blog.csdn.net/gybhh/article/details/140669608

相关文章

  • netty入门-6 Handler和Pipeline
    前言书上讲服务器客户端创建三个要点,线程模型(Group),IO模型(NioSocketChannel),处理逻辑。这篇的Handler和Pipeline,就是我们IO操作的处理逻辑。然后下篇说ByteBuf这个Netty自己实现的数据封装组件。Handler和Pipeline我们主要谈论ChannelHandler和ChannelPipeline。前......
  • CDN小白保姆级入门指南——如何选择服务器
    想玩PCDN不知道从何下手?手里有大把资源却没有机器?这起告诉您如何选择服务器。选择服务器时,需要考虑以下几个关键因素:1.目标用户地理位置:了解目标用户的地理位置是选择服务器的首要考虑因素。选择靠近用户群体的地理位置可以降低延迟,提高内容传输速度。可以考虑使用全球分布的......
  • 使用Spring Boot和Netty打造高性能聊天服务(一):基础入门
    使用SpringBoot和Netty打造高性能聊天服务(一):基础入门在现代互联网应用中,实时聊天功能已经成为了许多应用的标配。无论是社交应用、在线客服系统,还是游戏中的实时交流,聊天功能都扮演着重要角色。今天,我们将使用SpringBoot和Netty来构建一个高性能的聊天服务。本文是系列文章的第......
  • 【selenium】自动化测试小白入门:实现只开一个窗口,不同用户循环登录
    首先,我在给一个审批流写自动化脚本,需要各个不同的人登录去点通过按钮,每个人的流程都一致,唯一的区别就是user不同。那么,我的实现目标是,不关闭browser,只写一个testcase,实现不同用户按顺序运行同一个testcase第一次尝试,在driver里面写[email protected](scope="session")......
  • 程序设计:C++入门教程(速成) + 15道经典例题(附带例题解析)
    本文章以实用为主,若实在是不明白文字所表达的内容,无脑复制代码,自己动手运行一下,实验一下即可理解文章内容,放心,代码是全的,全选复制粘贴即可不废话,直接开整数据类型常用数据类型int:整数类型,用于表示整数值。例如:1,2,-3,0等。float:单精度浮点数类型,用于表示带有小数点的数......
  • Linux入门---(三)Shell编程
    1.脚本格式:#!/bin/bash开头2.脚本执行方式采用bash或sh+脚本的相对路径或绝对路径采用输入脚本的绝对路径或相对路径执行脚本,如./hello.sh在脚本的路径前加上“.”或source(父shell)3.变量系统预定义变量:$HOME,$PWD,$SHELL,$USER等自定义变量:变量名=变量值,如my_var=hello......
  • Vue入门
    VueisapopularJavaScriptframeworkforbuildinguserinterfaces.Itisoftenusedforcreatingsingle-pageapplicationsandisknownforitssimplicityandflexibility.Vueallowsdeveloperstoorganizetheircodeintoreusablecomponents,makingitea......
  • 转行网络安全,应该选哪个方向?(非常详细)零基础入门到精通,收藏这一篇就够了
    随着互联网技术的快速发展和广泛应用,网络安全形势日益严峻,各种网络攻击和安全威胁不断涌现,给个人、企业乃至国家带来了巨大的风险。为了应对网络风险,网络安全越来越被重视,开始成为入行互联网的备选岗位。网络安全方向众多,涉及到网络安全生命全周期,方向多达几十种。网络安......
  • Java入门:05.Java中的数组002
    通过上篇文章,相信大家对数组应该有了一个简单的了解,并对Java中的数据类型有了一个基本的认识,不仅如此我们还明白了怎样定义一个数组类型的变量,在这之后,让我们一起来更加深入的了解一下数组吧。三、如何创建一个数组(对其初始化)上篇文章我们明白了怎样定义一个数组类型的变量,但......
  • 入门Vue+.NET 8 Web Api记录(一)
    做自己感觉有意思的或者能解决自己需求的项目作为入门,我觉得是有帮助的,不会觉得那么无聊。一个最简单的前后端分离项目应该是怎么样的?我觉得就是前端有个按钮,点击向后端发送一个get请求,获取到数据后,将数据显示在前端上。结合最近感兴趣的SemanticKernel,有了做这样的Demo学习的......