C语言的各类运算概述

2023-11-09

C语言的各类运算概述

C语言的一个很有用的特性就是支持按位布尔运算。

位级运算:

对char数据类型表达式求值的例子:

 

逻辑运算:逻辑运算符||、&&和!,分别对应于命题逻辑中的OR、AND和NOT 运算。逻辑运算认为所有非零的参数都表示TRUE,而参数0表示FALSE,它们返回1或者0,分别表示结果为TRUE或者 为FALSE。如果对第一个参数求值就能确定表达式的结果,那么逻辑运算符就不会对第二个参数求值。

 

移位运算:x<<k,x向左移动左位,丢弃最高的上位,并在右端补上个0, 移位运算是从左至右可结合的。 一般而言,机器支持两种形式的右移:逻辑右移和算术右移。逻辑右移在左端补k个0, 算术右移是在左端补k个最高有效位的值。

C语言标准并没有明确定义应该使用哪种类型的右移。对于无符号数据右移必须是逻辑的。而对于有符号数据(默认的声明的整型对象),算术的或者逻辑的右移都可以。实际上,几乎所有的编译器/机器组合都对有符号数据使用算术右移,且许多程序员也都假设机器会使用这种右移。Java对于如何进行右移有明确的定义。表达式x>>k会将x算术右移k个位置, 而x>>>k会对x做逻辑右移。

移动k位:对于一个由w位组晟的数据类型,如果要移动k>w位,通过计算k mod w得到的. 对于c程序来说是没有一保证的,所以移位数量应该保持小于字长,Java特别要求位移数量应该按照我们前面所讲的求模的方法来计算。

 

练习题:

答案:

第一步: a, a^b

第二步:a^(a^b)=b,a^b

第三步:b,b^(a^b)=a

答案:

A:first=k+1,last=k+1

B:因为此时结果为a^a=0;

C:for(first,=0,last=cnt-1;first<last;first++,last--)

inplace_swap(&a[first],&a[last]);

答案:

A:x&0x000000FF

B:x^ (~0x0FF)

C:x|0xFF

答案:

bis(x,y)

bis(bic(x,y),bic(y,x))

答案:

X=0x66=0110 0110

Y=0x39=0011 1001

x&y=0010 0000=0x20

x|y=0111 1111=0x7F

~x|~y=1001 1001|1100 0110=1101 1111=0xDF

x&!y=0x00

x&&y=0x01

x||y=0x01

!x||!y=0x00

x&&~y=0x01

 

答案:

if(!(x^y)&&(x&(~y)))

 

填写下表,说明不同移位运算对单字节数的影响。思考移位运算的最好方式是使用二进制表示。将最初的值转换为二进制执行移位运算,然后再转换回十六进制。每个答案都应该是8个二进制数字或者2个十六进制数字。

答案:

1100 0011    0001 1000 0x18   0011 0000 0x30  1111 0000 0xF0

0111 0101    1010 1000 0xA8  0001 1101 0x1D  0001 1101 0x1D

1000 0111    0011 1000 0x38   0010 0001 0x21  1110 0001 0xE1

0110 0110   0011   0000 0x30  0001 1001 0x19  0001 1001 0x19

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

C语言的各类运算概述 的相关文章

  • 使用 CLion 进行 OpenCV Windows 设置

    我想在 Windows 上为 CLion IDE 设置 OpenCV 我尝试使用 OpenCV 3 1 和 2 4 得到相同的结果 我有 Windows 10 64 位 CLion 使用 cygwin 环境 到目前为止我做了什么 1 从Op
  • 您可以从基本 Win32 控制台模板应用程序中的 C#/Winrt 组件调用(不是 WinForm/abstractions/wrappers 或使用 C++/Winrt 模板)吗?)

    我有一个现有的程序 win32 x86 控制台应用程序 需要调用托管代码 来自 Net 的 C dll The dll不暴露给 COM 但可以从 C WinRT 组件调用并由 C WinRT 控制台模板应用引用 BUT即使安装了 C Win
  • Poco c++Net:Http 从响应中获取标头

    我使用 POCO C Net 库进行 http 我想尝试制定持久缓存策略 首先 我认为我需要从缓存标头中获取过期时间 并与缓存值进行交叉检查 如果我错了 请告诉我 那么我如何从中提取缓存头httpResponse 我已经看到你可以用 Jav
  • 在 OnModelCreating 期间设置列名称

    Issue 我目前正在尝试通过设置的属性为我的表及其列添加前缀 我正在使用实体框架核心 我已经正确地为表名添加了前缀 但我似乎无法弄清楚列的前缀 我有一种感觉 我需要使用反射 我已经留下了我的 可能很糟糕的 反思尝试 有人有办法在实体中设置
  • C++ 长 switch 语句还是用地图查找?

    在我的 C 应用程序中 我有一些值充当代表其他值的代码 为了翻译代码 我一直在争论使用 switch 语句还是 stl 映射 开关看起来像这样 int code int value switch code case 1 value 10 b
  • 有没有办法在 xcode 上使用 c++0x ?我想使用 gcc 4.4 或更高版本

    我想使用 gcc 4 4 或更高版本进行 iphone 开发 有人知道怎么做吗 不 你不知道 相信我 你不会 Apple 仍保留 gcc 4 2 1 因为 4 2 2 及更高版本使用 GPLv3 这意味着他们必须放弃对其平台的控制 对于 i
  • 检测wlan是否关闭

    任何人都可以给我一个提示 如何在 Windows Phone 上以编程方式检测 C 8 1 应用程序 不是 8 0 是否启用 禁用 WLAN 我不想更改这些设置 只是需要知道 该解决方案是一个 Windows 8 1 通用应用程序 Wind
  • 解析 JWT 令牌以仅获取有效负载内容,无需 C# 或 Blazor 中的外部库

    我正在使用 Blazor 编写可以访问 JWT 的客户端应用程序 我想知道一种简单的方法来读取令牌有效负载内容而不添加额外的依赖项 因为我不需要其他信息 也不需要验证令牌 我认为解析有效负载内容应该足够简单 只需将其写入方法即可 JwtTo
  • CSharpRepl emacs 集成?

    我碰巧知道莫诺CSharpRepl http www mono project com CsharpRepl 是否有 emacs csharp 模式使用它在一个窗口中运行 REPL 并像 python 模式一样在另一个窗口中编译 运行 C
  • 从代码中,如何创建对存储在附加属性中的对象的属性的绑定?

    我们有一个继承的附加属性来存储一个对象 在可视化树的更下方 我们希望从代码绑定到该对象的属性 通常我们像这样构建绑定的路径部分 var someBinding new Binding Path new PropertyPath Attach
  • 运行需要 MySql.Data 的内置 .NET 应用程序

    我在运行我编写的内置 NET 应用程序时遇到问题 我的应用程序使用最新的 MySql 连接器 该连接器安装在我的系统上 当我尝试将其添加为引用时 该连接器显示为 NET 4 Framwork 组件 当我在环境中以调试模式运行应用程序时 一切
  • 如何制作可启动程序?

    所以 这个问题可能看起来很奇怪 但假设我编译了 int main void int x 3 int y 4 int z x y 是否可以让CPU这样运行 如何 例如 这允许我写入监视器吗 如果我没记错的话 内存中有些地方可以写入要显示的内容
  • 在 omp 并行 for 循环中使用 unique_ptr 会导致 SEG.FAULT

    采取以下代码 include
  • 如何对 NServiceBus.Configure.WithWeb() 进行单元测试?

    我正在构建一个 WCF 服务 该服务接收外部 IP 上的请求并将其转换为通过 NServiceBus 发送的消息 我的单元测试之一调用Global Application Start 它执行应用程序的配置 然后尝试将 Web 服务解析为 验
  • 使用具有抗锯齿功能的 C# 更改抗锯齿图像的背景颜色

    我有一个图像需要更改背景颜色 例如 将下面示例图像的背景更改为蓝色 然而 图像是抗锯齿的 所以我不能简单地用不同的颜色替换背景颜色 我尝试过的一种方法是创建第二个图像 仅作为背景 并更改其颜色并将两个图像合并为一个图像 但是这不起作用 因为
  • 引用/指针失效到底是什么?

    我找不到任何定义指针 引用无效在标准中 我问这个问题是因为我刚刚发现 C 11 禁止字符串的写时复制 COW 据我了解 如果应用了 COW 那么p仍然是一个有效的指针并且r以下命令后的有效参考 std string s abc std st
  • 为什么 Cdecl 调用在“标准”P/Invoke 约定中经常不匹配?

    我正在开发一个相当大的代码库 其中 C 功能是从 C P Invoked 的 我们的代码库中有很多调用 例如 C extern C int stdcall InvokedFunction int 使用相应的 C DllImport CPlu
  • 逆向工程 ASP.NET Web 应用程序

    我有一个 ASP NET Web 应用程序 我没有源代码 该 bin 包含 10 个程序集和一个 compiled 文件 我在 App Code dll 上使用 Reflector 它向我显示了类和命名空间之类的东西 但它太混乱了 有没有什
  • .NET 4 的条件编译[重复]

    这个问题在这里已经有答案了 可能的重复 条件编译和框架目标 https stackoverflow com questions 2923210 c sharp conditional compilation and framework ta
  • CUDA 8 编译错误 -std=gnu++11

    我正在尝试转换一些代码以使用 CUDA 并且我认为我遇到了兼容性问题 我们使用CMake 这些是我使用的 gcc 和 CUDA 版本 gcc version gcc Ubuntu 5 4 0 6ubuntu1 16 04 5 5 4 0 2

随机推荐

  • 学习TensorFlow,调用预训练好的网络(Alex, VGG, ResNet etc)

    视觉问题引入深度神经网络后 针对端对端的训练和预测网络 可以看是特征的表达和任务的决策问题 分类 回归等 当我们自己的训练数据量过小时 往往借助牛人已经预训练好的网络进行特征的提取 然后在后面加上自己特定任务的网络进行调优 目前 ILSVR
  • oracle12542,关于客户端报的ORA-12542

    最近用户一个小应用系统总是出故障 windows的系统上跑一个VB写的小客户端程序 出现问题的时候 系统会弹出以下信息 Microsoft ODBC driver for oracle ORA 12542 TNS address alrea
  • GC日志分析

    JVM的GC日志的主要参数包括如下几个 XX PrintGC 输出GC日志 XX PrintGCDetails 输出GC的详细日志 XX PrintGCTimeStamps 输出GC的时间戳 以基准时间的形式 XX PrintGCDateS
  • 阿里云平台接入python版

    物联网基于python云平台的接入 文章目录 物联网基于python云平台的接入 1 设计目的 2 功能要求和关键问题 2 1 系统功能描述 2 2复杂工程问题分析 3 系统整体框架设计 4 模块的设计和实现 4 1 阿里云基础和设计 4
  • 22个开源的PHP框架

    PHP 是一个被广泛使用的来进行Web开发的脚本语言 虽然有很多其它可供选择的Web开发语言 像 ASP 和Ruby 但是PHP是目前为止世界上最为流行的 那么 是什么让PHP如此流行 PHP 如此之流行是因为比起别的语言来 它更容易学习
  • 后端程序员必备:mysql数据库相关流程图/原理图

    前言 整理了一些Mysql数据库相关流程图 原理图 做一下笔记 大家一起学习 1 mysql主从复制原理图 mysql主从复制原理是大厂后端的高频面试题 了解mysql主从复制原理非常有必要 主从复制原理 简言之 就三步曲 如下 主数据库有
  • DCEL数据结构

    文章目录 前言 DCEL介绍 DCEL优势 DCEL数据结构实现 Point Vertex HalfEdge Face Reference 前言 虽然https blog csdn net baidu 34931359 article de
  • 探索无限可能的教育新领域,景联文教育GPT题库开启智慧教育新时代!

    随着人工智能技术的快速发展 教育领域也将迎来一场革命性的变革 景联文科技是AI基础数据行业的头部企业 近期推出了一款高质量教育GPT题库 景联文科技高质量教育GPT题库采用了先进的自然语言处理技术和深度学习算法 可以实现对各类题目的智能识别
  • UIIAlertController的自动消失

    自动消失的思路就是添加一个计时器 设置计时器的时间 让UIAlertController 通过dismiss消失 UIAlertController alert UIAlertController alertControllerWithTi
  • css知识学习系列(6)-每天10个知识点

    目录 1 CSS中的 box sizing 属性与 border 属性有什么关系 2 在CSS中 如何使用 calc 函数进行计算 有什么使用技巧 3 在CSS中 如何使用 import 引入外部样式表 有哪些注意事项 4 Flexbox和
  • C# 邮件发送

    一 准备工作 1 要想编写一个发送邮件的小工具 首先得了解以下内容 收件人 这封邮件的接收人 邮件发送者沟通交流的对象 抄送 这封邮件的接收人 邮件发送者希望被抄送者了解邮件内容 密件抄送 这封邮件的接收人 与抄送的唯一区别就是它能够让各个
  • flutter 弹窗队列封装,里面的自定义回调值得学习

    参考 里面的这里回调TaskCallback Function学习一下 挺重要的 import dart async 自定义回调类型 typedef TaskCallback void Function bool success dynam
  • 【异常】IDEA打开配置文件*.properties乱码

    一 异常内容 二 异常说明 properties配置文件的编码格式 通常情况下properties的默认编码格式为ISO 8859 1 但是这种文件往往是不可读的 因此需要进行编码格式的转换 三 异常解决 更改properties的编码格式
  • C4996 ‘strncpy‘: This function or variable may be unsafe. Consider using strncpy_s instead. To disa.

    C4996 strncpy This function or variable may be unsafe Consider using strncpy s instead To disa 原因 解决方案 注意事项 原因 strncpy进行
  • 下次造轮子前先看看现有的轮子吧

    转自 http www cppblog com merlinfang archive 2014 12 26 209311 aspx 下次造轮子前先看看现有的轮子吧 值得学习的C语言开源项目 1 Webbench Webbench是一个在li
  • 物理组件oracle,Oracle入门《Oracle介绍》第一章1-1

    1 Oracle 简介 a 对象关系型的数据库管理系统 ORDBMS b 在管理信息系统 企业数据处理 因特网及电子商务等领域使用非常广泛 c 在数据安全性与数据完整性控制方面性能优越 d 跨操作系统 跨硬件平台的数据互操作能力 2 Ora
  • C#中的数组

    C 中的数组 C 数组 Array foreach 索引 null 地址 http www cnblogs com txw1958 archive 2013 01 11 csharp array html 数组概述 数组是一种数据结构 它包
  • VC工程中几中后缀名文件的意义

    opt 工程关于开发环境的参数文件 如工具条位置等信息 aps AppStudio File 资源辅助文件 二进制格式 一般不用去管他 clw ClassWizard信息文件 实际上是INI文件的格式 有兴趣可以 研究 一下 有时候Clas
  • 拜小白教你Qt5.8.0+OpenCV3.2.0配置教程(详细版)

    本机环境 Windows 64位 Qt 5 8 0 OpenCV3 2 0 CMake3 8 2 最后结果 亲测可用 第0部分 前期准备 CMake官网下载地址 https cmake org download CMake安装教程请查看 拜
  • C语言的各类运算概述

    C语言的各类运算概述 C语言的一个很有用的特性就是支持按位布尔运算 位级运算 对char数据类型表达式求值的例子 逻辑运算 逻辑运算符 和 分别对应于命题逻辑中的OR AND和NOT 运算 逻辑运算认为所有非零的参数都表示TRUE 而参数0