如何更改 unsigned char 中的 4 位?

2024-02-28

unsigned char *adata = (unsigned char*)malloc(500*sizeof(unsigned char));
unsigned char *single_char = adata+100;

如何更改 single_char 中的前四位以表示 1..10 (int) 之间的值?

问题来自于TCP头结构:

Data Offset: 4 bits 

The number of 32 bit words in the TCP Header.  This indicates where
the data begins.  The TCP header (even one including options) is an
integral number of 32 bits long.

通常它的值为 4..5,字符值类似于 0xA0。


这些假设您已将 *single_char 初始化为某个值。否则,咖啡馆发布的解决方案可以满足您的需要。

(*single_char) = ((*single_char) & 0xF0) | val;

  1. (*single_char) & 11110000-- 将低 4 位重置为 0
  2. | val-- 将最后 4 位设置为值(假设 val

如果你想访问最后 4 位,你可以使用unsigned char v = (*single_char) & 0x0F;

如果你想访问高 4 位,你可以将掩码向上移动 4 位,即。

unsigned char v = (*single_char) & 0xF0;

并设置它们:

(*single_char) = ((*single_char) & 0x0F) | (val << 4);

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

如何更改 unsigned char 中的 4 位? 的相关文章

  • 是否有与 posix_memalign 对应的 C++ 版本?

    当我打电话时posix memalign http man7 org linux man pages man3 posix memalign 3 html为类型的对象分配对齐的内存Foo在我的 C 代码中 我需要做一个reinterpret
  • 为什么在连接两个字符串时 Python 比 C 更快?

    目前我想比较 Python 和 C 用来处理字符串的速度 我认为 C 应该比 Python 提供更好的性能 然而 我得到了完全相反的结果 这是 C 程序 include
  • 使用 C# 登录《我的世界》

    我正在尝试为自己和一些朋友创建一个简单的自定义 Minecraft 启动器 我不需要启动 Minecraft 的代码 只需要登录的实际代码行 例如 据我所知 您过去可以使用 string netResponse httpGET https
  • 代码 GetAsyncKeyState(VK_SHIFT) & 0x8000 中的这些数字是什么?它们是必不可少的吗?

    我试图在按下按键的简单动作中找到这些数字及其含义的任何逻辑解释 GetAsyncKeyState VK SHIFT 0x8000 可以使用哪些其他值来代替0x8000它们与按键有什么关系 GetAsyncKeyState 根据文档返回 如果
  • JNI 将 Char* 2D 数组传递给 JAVA 代码

    我想从 C 代码通过 JNI 层传递以下指针数组 char result MAXTEST MAXRESPONSE 12 12 8 3 29 70 5 2 42 42 在java代码中我写了以下声明 public static native
  • 如何使用 Castle Windsor 将对象注入到 WCF IErrorHandler 实现中?

    我正在使用 WCF 开发一组服务 该应用程序正在使用 Castle Windsor 进行依赖注入 我添加了一个IErrorHandler通过属性添加到服务的实现 到目前为止一切正常 这IErrorHandler对象 一个名为FaultHan
  • 当一组凭据下的计划任务启动的进程在另一组凭据下运行另一个程序时,Windows 是否有限制

    所以我有一个简单的例子 其中我有应用程序 A 它对用户 X 本地管理员 有一些硬编码的凭据 然后它使用硬编码的绝对路径启动带有这些凭据的应用程序 B A 和 B 以及 dotnet 控制台应用程序 但是它们不与控制台交互 只是将信息写入文件
  • C# 数据表更新多行

    我如何使用数据表进行多次更新 我找到了这个更新 1 行 http support microsoft com kb 307587 my code public void ExportCSV string SQLSyntax string L
  • unordered_map 中字符串的 C++ 哈希函数

    看起来 C 标准库中没有字符串的哈希函数 这是真的 在任何 c 编译器上使用字符串作为 unordered map 中的键的工作示例是什么 C STL提供模板专业化 http en cppreference com w cpp string
  • 打破 ReadFile() 阻塞 - 命名管道 (Windows API)

    为了简化 这是一种命名管道服务器正在等待命名管道客户端写入管道的情况 使用 WriteFile 阻塞的 Windows API 是 ReadFile 服务器已创建启用阻塞的同步管道 无重叠 I O 客户端已连接 现在服务器正在等待一些数据
  • 如何在 Qt 应用程序中通过终端命令运行分离的应用程序?

    我想使用命令 cd opencv opencv 3 0 0 alpha samples cpp cpp example facedetect lena jpg 在 Qt 应用程序中按钮的 clicked 方法上运行 OpenCV 示例代码
  • 在视口中查找 WPF 控件

    Updated 这可能是一个简单或复杂的问题 但在 wpf 中 我有一个列表框 我用一个填充数据模板从列表中 有没有办法找出特定的数据模板项位于视口中 即我已滚动到其位置并且可以查看 目前我连接到了 listbox ScrollChange
  • 在 NaN 情况下 to_string() 可以返回什么

    我使用 VS 2012 遇到了非常令人恼火的行为 有时我的浮点数是 NaN auto dbgHelp std to string myFloat dbgHelp最终包含5008角色 你不能发明这个东西 其中大部分为0 最终结果是 0 INF
  • 高效列出目录中的所有子目录

    请参阅迄今为止所采取的建议的编辑 我正在尝试使用 WinAPI 和 C 列出给定目录中的所有目录 文件夹 现在我的算法又慢又低效 使用 FindFirstFileEx 打开我正在搜索的文件夹 然后我查看目录中的每个文件 使用 FindNex
  • WPF DataGridTemplateColumn 组合框更新所有行

    我有这个 XAML 它从 ItemSource 是枚举的组合框中选择一个值 我使用的教程是 http www c sharpcorner com uploadfile dpatra combobox in datagrid in wpf h
  • 在屏幕上获取字符

    我浏览了 NCurses 函数列表 似乎找不到返回已打印在屏幕上的字符的函数 每个字符单元格中存储的字符是否有可访问的值 如果没有的话Windows终端有类似的功能吗 我想用它来替换屏幕上某个值的所有字符 例如 所有a s 具有不同的特征
  • WebBrowser.Print() 等待完成。 。网

    我在 VB NET 中使用 WebBrowser 控件并调用 Print 方法 我正在使用 PDF 打印机进行打印 当调用 Print 时 它不会立即启动 它会等到完成整个子或块的运行代码 我需要确保我正在打印的文件也完整并继续处理该文件
  • 如何减少具有多个单元的 PdfPTable 的内存消耗

    我正在使用 ITextSharp 创建一个 PDF 它由单个 PdfTable 组成 不幸的是 对于特定的数据集 由于创建了大量 PdfPCell 我遇到了内存不足异常 我已经分析了内存使用情况 我有近百万个单元格的 1 2 在这种情况下有
  • 如何使用 C++11 using 语法键入定义函数指针?

    我想写这个 typedef void FunctionPtr using using 我该怎么做呢 它具有类似的语法 只不过您从指针中删除了标识符 using FunctionPtr void 这是一个Example http ideone
  • 如何将十六进制字符串转换为无符号长整型?

    我有以下十六进制值 CString str str T FFF000 如何将其转换为unsigned long 您可以使用strtol作用于常规 C 字符串的函数 它使用指定的基数将字符串转换为 long long l strtol str

随机推荐

  • .NET 枚举类型实际上是可变值类型吗?

    经过反思 我惊讶地发现 保存枚举特定实例实际值的 支持 实例字段并不是枚举类型的字段 private 正如我所想的 但是public 事实并非如此readonly任何一个 IsPublic true IsInitOnly false 许多人
  • 使用 r Markdown、kable 和 kableExtra 渲染表格时出现问题

    我正在尝试使用 r markdown kable 和 kableExtra 输出乳胶表 我在表格渲染代码中遇到错误 该错误不属于 R 生成的乳胶代码的一部分 代码 outTab lt m OutTab gt kable format lat
  • 为什么我不能在重写的方法中添加 Contract.Requires ?

    我正在使用代码契约 实际上 正在学习使用它 我面临着一些奇怪的事情 我重写了在第 3 方程序集中定义的方法 我想添加一个Contract Require像这样的声明 public class MyClass MyParentClass pr
  • 如何减少 mousemove 事件导致的速度减慢?

    我正在运行一个相对简单的函数 更新span s innerHTML on mousemove 该应用程序是一个Leaflet http leaflet cloudmade com 地图 当鼠标移动时 缩放 平移和加载图块时会出现明显的滞后
  • 正则表达式“?:^”是什么意思?

    我正在查看这个子表达式 这是 JavaScript 中的 我知道 当它跟在一个字符后面时意味着 零次或一次 但不确定它在这种情况下意味着什么 当与组一起工作时 您通常有几个选项可以修改组的行为 foo default behavior ma
  • iOS 8 UITableView 旋转错误

    因此 在 XCode 6 上编译应用程序后 我注意到一个奇怪的错误 该错误仅在 iOS 8 上运行时才会发生 这UITableView采取错误的inner更新框架后的尺寸 现在我将尝试解释一下具体情况 我们有一个UITableView侧面旋
  • 在javascript中比较两个数字的问题

    我的html代码是这样的
  • Ruby on Rails 开关 [重复]

    这个问题在这里已经有答案了 有人可以提供一个关于如何在 Ruby 中使用 switch case 来表示变量的示例吗 我假设你指的是案例 时间 case a variable a variable is the variable we wa
  • C++ 构造函数初始值设定项列表抛出异常

    我对以下代码有问题 可以看到我已经在C的构造函数中处理了A的构造函数抛出的异常 为什么还要在main函数中再次捕获并处理异常呢 include
  • 如何使用tcl中的puts更改文本颜色

    我想通过使用 tcl 中的 put 命令来更改控制台中显示的文本颜色以简化调试 我看到很多文章是 abt tk 而不是 tcl 仅供参考 我在 Windows 7 上使用 Active tcl 我尝试过其他人提供的以下代码 http www
  • MySQL 5.1 中需要一个抽象触发器来更新审核日志

    我需要一种方法来检查表中已更改的任何条目并将其传递到审核日志中 它需要从表结构中抽象出来 例如 CREATE TRIGGER table1 update BEFORE UPDATE ON table1 FOR EACH ROW BEGIN
  • 我如何摆脱这个 unicode 字符?

    Any idea how to get rid of this irritating character U 0092 from a bunch of text files I ve tried all the below but it d
  • 如何迭代对象数组以进行预输入?

    http angular ui github io bootstrap http angular ui github io bootstrap 我想使用引导程序的预输入 并在对象中搜索两个不同的密钥对 如何迭代数组对象 另外有人可以解释一下
  • Git 可以忽略内容相同但时间戳更新的文件吗

    我在最近的网络项目中使用 FTP 我尝试使用 git 在 FTP 上保留所有更改的本地备份 FTP 服务器似乎无法支持 MFMT 命令 或者我犯了一些其他错误 下载的文件不保留其时间戳 当我对新下载的文件进行 git diff 时 Git
  • sudo pecl 在 os x lion 上安装 apc 错误

    我尝试在 OS X Lion 上使用 pecl 安装 APC sudo pecl install apc 并且它抱怨缺少 pcre h 文件 In file included from private tmp pear temp APC a
  • JavaScript typeof 曾经返回过“数组”吗?

    我在各种开源项目中都看到过这种习惯用法 it instanceof Array typeof it array 我知道后半部分在 ECMAScript 5 或 6 中不可能是真的 但是是否有一个实现可以从 typeof 返回 数组 或者这是
  • $this->getRequest()->isPost() 返回 false

    我正在处理一个现有代码 最后一个开发人员创建了一个表单 但没有使用 form 代码是 public function indexAction objRequest this gt getRequest var dump objRequest
  • 使用 split_part 后替换空字段中的值

    我有两列 id integer and version text 我正在尝试将字符串转换为version转换为整数 以便我可以选择 id 的最大 最新 版本 然而 第一个实例id将自身存储为version 例子 id version 10
  • 在 C++ WIN32 中识别后台进程并将其带到前台

    谁能告诉我如何识别特定的后台进程 即已经运行的应用程序 并将其带到前台 例如 如果记事本应用程序在后台运行 当我运行 WIN32 应用程序时 它应该识别记事本应用程序 并且记事本应该弹出或进入前台 我尝试了 SwitchToThisWind
  • 如何更改 unsigned char 中的 4 位?

    unsigned char adata unsigned char malloc 500 sizeof unsigned char unsigned char single char adata 100 如何更改 single char 中