C語言常用轉換函數實現原理

編程時,經常用到進制轉換、字符轉換。比如軟件界面輸入的數字字符串,如何將字符串處理成數字呢?今天就和大家分享一下。01
字符串轉十六進制

代碼實現:

void?StrToHex(char?*pbDest,?char?*pbSrc,?int?nLen)
{char?h1,h2;char?s1,s2;int?i;for?(i=0;?i????{h1?=?pbSrc[2*i];h2?=?pbSrc[2*i 1];s1?=?toupper(h1)?-?0x30;?//toupper?轉換為大寫字母if?(s1?>?9)s1?-=?7;s2?=?toupper(h2)?-?0x30;if?(s2?>?9)s2?-=?7;pbDest[i]?=?s1*16? ?s2;}
}

十六進制轉字符串


代碼實現:

void?HexToStr(char?*pszDest,?char?*pbSrc,?int?nLen)
{char????ddl,?ddh;for?(int?i?=?0;?i?{ddh?=?48? ?pbSrc[i]?/?16;ddl?=?48? ?pbSrc[i]?%?16;if?(ddh?>?57)?ddh?=?ddh? ?7;if?(ddl?>?57)?ddl?=?ddl? ?7;pszDest[i?*?2]?=?ddh;pszDest[i?*?2? ?1]?=?ddl;}pszDest[nLen?*?2]?=?'\0';
}

或者:

u16?Hex2StringArray?(u8?*pSrc,??u16?SrcLen,?u8?*pObj)
{u16?i=0;for(i=0;????i{sprintf((char?*)(pObj? ?i?*?2),?"X",?*(pSrc? ?i));}*(pObj? ?i?*?2)?=?'\0';return??(i?*?2);
}

效果:十六進制:0x13 0xAA 0x02轉為字符串:”13AAA2”

字符串轉十進制


代碼實現:第一種,如果帶負號 這個就是atoi函數的實現:int?my_atoi(const?char?*str)

{int?value?=?0;int?flag?=?1;?//判斷符號while?(*str?==?'?')??//跳過字符串前面的空格{str ;}if?(*str?==?'-')??//第一個字符若是‘-’,說明可能是負數{flag?=?0;str ;}else?if?(*str?==?' ')?//第一個字符若是‘ ’,說明可能是正數{flag?=?1;str ;}//第一個字符若不是‘ ’‘-’也不是數字字符,直接返回0else?if?(*str?>=?'9'?||?*str?<=?'0')?{return?0;????}//當遇到非數字字符或遇到‘\0’時,結束轉化while?(*str?!=?'\0'?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/89654.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/89654.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/89654.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

辦公文檔批量打印器 Word、PPT、Excel、PDF、圖片和文本,它都支持批量打印。

辦公文檔批量打印器是一款可以批量打印文檔的工具&#xff0c;其是綠色單文件版&#xff0c;支持添加文件、文件夾。 我之前也介紹過批量打印的軟件&#xff0c;但是都是只支持Office的文檔打印&#xff0c;詳情可移步至——>>大小只有700K的軟件&#xff0c;永久免費&am…

大事件項目記錄13-文章管理接口開發-總

一、文章管理接口。 共有5個&#xff0c;分別為&#xff1a; 1.新增文章&#xff1b; 2.文章列表(條件分頁) &#xff1b; 3.獲取文章詳情&#xff1b; 4.更新文章&#xff1b; 5.刪除文章。 二、詳解。 1.新增文章。 ArticleController.java&#xff1a; PostMappingpublic R…

如何防止內部威脅:服務器訪問控制與審計策略

內部威脅是指來自組織內部的用戶或設備對服務器和數據的潛在安全威脅。這些威脅可能是由于惡意行為、疏忽或配置錯誤造成的。為了防止內部威脅&#xff0c;必須建立強大的訪問控制和審計策略&#xff0c;確保服務器的安全性和數據完整性。 1. 什么是內部威脅&#xff1f; 1.1 …

科技賦能電網安全:解析絕緣子污穢度在線監測裝置的核心技術與應用價值

絕緣子是電力系統中保障輸電線路安全運行的關鍵設備&#xff0c;其表面污穢積累可能引發閃絡事故&#xff0c;導致線路跳閘甚至電網癱瘓。傳統的人工巡檢方式存在效率低、時效性差等問題&#xff0c;而絕緣子污穢度在線監測裝置通過實時數據采集與分析&#xff0c;為電網安全運…

實際開發如何快速定位和解決死鎖?

一、死鎖的本質與常見場景 1. 死鎖的四大必要條件 互斥:資源同一時間只能被一個線程持有。占有并等待:線程持有資源的同時請求其他資源。不可搶占:資源只能被持有者主動釋放。循環等待:多個線程形成資源的循環依賴鏈。2. 常見死鎖場景 數據庫事務死鎖:-- 事務1 BEGIN; UP…

uniapp實現圖片預覽,懶加載,下拉刷新等

實現的功能 懶加載 lazy-load --對小程序起效果圖片預覽下拉刷新觸底加載更多底下設置安全距離env(safe-area-inset-bottom)右下角固定圖標置頂及刷新功能 效果如圖&#xff1a; 預覽 代碼 <template><view class"image-classify"><uni-segmente…

FFmpeg開發筆記(七十七)Android的開源音視頻剪輯框架RxFFmpeg

《FFmpeg開發實戰&#xff1a;從零基礎到短視頻上線》一書的“第 12 章 FFmpeg的移動開發”介紹了如何使用FFmpeg在手機上剪輯視頻&#xff0c;方便開發者更好地開發類似剪映那樣的視頻剪輯軟件。那么在Android系統上還有一款國產的開源視頻剪輯框架RxFFmpeg&#xff0c;通過該…

小測一下筆記本電腦的VMXNET3和E1000e網卡性能

正文共&#xff1a;999 字 14 圖&#xff0c;預估閱讀時間&#xff1a;1 分鐘 通過上次操作&#xff0c;我們已經實現了將筆記本電腦的ESXi版本從6.0升級到了6.7&#xff08;VMware ESXi 6.7可以成功識別機械硬盤了&#xff09;&#xff0c;并且測得以電腦中的虛擬機作為server…

K8S初始化master節點不成功kubelet.service failed(cgroup driver配置問題)

一、背景 安裝k8s集群&#xff0c;初始化master節點一直不成功。 二、排查 查看日志 ps -ef | grep kube-apiserver [rootzjy01 home]# ps -ef | grep kube-apiserver root 85663 4637 0 12:41 pts/1 00:00:00 grep --colorauto kube-apiserver [rootzjy01 home…

C++ 標準模板庫算法之 transform 用法

目錄 1. 說明 2. 用法示例 1. 說明 std::transform 是一種多功能算法&#xff0c;用于將已知函數應用于一個或多個范圍內的元素&#xff0c;并將結果存儲在輸出范圍內。它主要有兩種形式&#xff1a;一元運算和二元運算。具體來說是在 <algorithm> 標頭中。函數聲明&am…

開源 C# .net mvc 開發(六)發送郵件、定時以及CMD編程

文章的目的為了記錄.net mvc學習的經歷。本職為嵌入式軟件開發&#xff0c;公司安排開發文件系統&#xff0c;臨時進行學習開發&#xff0c;系統上線3年未出沒有大問題。開發流程和要點有些記憶模糊&#xff0c;趕緊記錄&#xff0c;防止忘記。 嵌入式 .net mvc 開發&#xff…

OpenCV圖像邊緣檢測

一、邊緣檢測基礎概念 邊緣檢測是圖像處理中最基本也是最重要的操作之一&#xff0c;它能識別圖像中亮度或顏色急劇變化的區域&#xff0c;這些區域通常對應物體的邊界。OpenCV提供了多種邊緣檢測方法&#xff0c;從傳統的算子到基于深度學習的現代方法。 1.1 為什么需要邊緣…

(Arxiv-2024)自回歸模型優于擴散:Llama用于可擴展的圖像生成

自回歸模型優于擴散&#xff1a;Llama用于可擴展的圖像生成 paper是香港大學發布在Arxiv2024的工作 paper title:Autoregressive Model Beats Diffusion: Llama for Scalable Image Generation Code:鏈接 Abstract 我們介紹了LlamaGen&#xff0c;一種新的圖像生成模型系列&am…

高頻SQL50題 第九天 | 1164. 指定日期的產品價格、1204. 最后一個能進入巴士的人、1907. 按分類統計薪水

1164. 指定日期的產品價格 題目鏈接&#xff1a;https://leetcode.cn/problems/product-price-at-a-given-date/description/?envTypestudy-plan-v2&envIdsql-free-50 狀態&#xff1a;已完成 考點&#xff1a; group by select語句中使用聚合函數max()&#xff1a;獲取…

Java內存模型(JMM)深度解析

1. 引言 在當今多核處理器和并發編程盛行的時代&#xff0c;Java工程師們在構建高性能、高可用系統時&#xff0c;常常會面臨復雜的線程安全挑戰。數據不一致、競態條件、死鎖等問題&#xff0c;不僅難以調試&#xff0c;更可能導致系統行為異常。這些問題的根源&#xff0c;往…

參數僅 12B! FLUX.1-Kontext-dev 實現高效文本驅動圖像編輯,性能媲美 GPT-4o

FLUX.1-Kontext-dev 是由 Black Forest Labs 團隊于 2025 年 6 月 26 日聯合發布的生成與編輯圖像的流匹配&#xff08;flow matching&#xff09;模型。FLUX.1 Kontext 的圖像編輯是廣泛意義上的圖像編輯&#xff0c;不僅支持圖像局部編輯&#xff08;對圖像中的特定元素進行針…

Robot---能打羽毛球的機器人

1 前言 Robot系列主要介紹一些比較有意思的機器人&#xff0c;前面的博客文章中也給讀者朋友們展示了一些&#xff1a; 《人形機器人---越來越像人了》 《自動駕駛---兩輪自行車的自主導航》 《自動駕駛---會打架的“球形機器人”》 《Robot---SPLITTER行星探測機器人》 《Robo…

瀏覽器默認非安全端口列表

瀏覽器默認非安全端口列表: https://chromium.googlesource.com/chromium/src.git//refs/heads/master/net/base/port_util.cc 0, // Not in Fetch Spec.1, // tcpmux7, // echo9, // discard11, // systat13, // daytime15, // netstat17, …

在線租房平臺源碼+springboot+vue3(前后端分離)

大家好&#xff0c;今天給大家帶來一個非常完善的 在線租房平臺。大家可用學習下系統的設計和源碼風格。 視頻演示 在線租房平臺源碼springbootvue3 圖片演示 技術棧 后端 技術框架&#xff1a;JDK8SpringBoot Mybatis-Plus 數據庫&#xff1a;Mysql8 前端 核心框架 - Vue…

android核心技術摘要

Android APP 默認賦予權限apk簽名 apk簽名&#xff1a;https://blog.csdn.net/u014763302/article/details/149055647apksign使用反法&#xff1a;[https://www.cnblogs.com/fengxing999/p/11978037.html]從Android源碼生成系統簽名文件&#xff1a;https://blog.csdn.net/wenz…