[20251206]混合16进制与10进制的计算.txt --//有时候需要16进制与10进制数值的混合计算,使用bc就比较麻烦或者很难实现。 --//使用gdb相对简单 $ echo "p /d 0xa+10" | gdb -q (gdb) $1 = 20 (gdb) quit $ echo "p /x 0xa+10" | gdb -q (gdb) $1 = 0x14 (gdb) quit --//顺便贴一个dc的例子0xa+11: $ echo "16 i A A i 11 + 16 opq" | dc 15 $ echo "16 i A A i 11 + 10 opq" | dc 21 --//简单说明: --//16 i 表示输入16进制值,输入数值A,注意dc 16进制要使用大写英文字符。 --//A i 表示输入10进制值,因为前面16i已经确定输入16进制,这里只能输入A表示10进制,输入数值11 --//16 o 表示输出16进制。 --//先输入10进制可以这样写。 $ echo "11 16 i A + 16 opq" | dc 21 --//奇怪这样前面会出现1个空格。 --//我以前写过一个map在linux下在vim下使用。 # cat /usr/share/vim/vim74/plugin/gdb.vim "" gdb Low version for linux ""noremap <Leader>px Yp!!sed -e 's+^+p /x +' >\| /tmp/gdb.txt && gdb -q -x /tmp/gdb.txt \| awk 'NR==1{print $NF}'<CR>kA = <ESC>J ""noremap <Leader>pd Yp!!sed -e 's+^+p /d +' >\| /tmp/gdb.txt && gdb -q -x /tmp/gdb.txt \| awk 'NR==1{print $NF}'<CR>kA = <ESC>J ""noremap <Leader>po Yp!!sed -e 's+^+p /o +' >\| /tmp/gdb.txt && gdb -q -x /tmp/gdb.txt \| awk 'NR==1{print $NF}'<CR>kA = <ESC>J ""noremap <Leader>pt Yp!!sed -e 's+^+p /t +' >\| /tmp/gdb.txt && gdb -q -x /tmp/gdb.txt \| awk 'NR==1{print $NF}'<CR>kA = <ESC>Ji0b ""noremap <Leader>pb Yp!!sed -e 's+^+p /t +' >\| /tmp/gdb.txt && gdb -q -x /tmp/gdb.txt \| awk 'NR==1{print "0b"$NF}'<CR>kA = <ESC>J "" gdb high version for linux noremap <Leader>px Yp!!sed -e 's+^+p /x +' \| gdb -q \| awk 'NR==1{print $NF}'<CR>kA = <ESC>J noremap <Leader>pd Yp!!sed -e 's+^+p /d +' \| gdb -q \| awk 'NR==1{print $NF}'<CR>kA = <ESC>J noremap <Leader>po Yp!!sed -e 's+^+p /o +' \| gdb -q \| awk 'NR==1{print $NF}'<CR>kA = <ESC>J noremap <Leader>pt Yp!!sed -e 's+^+p /t +' \| gdb -q \| awk 'NR==1{print $NF}'<CR>kA = <ESC>Ji0b "" gdb for windwows, you must be installl cygwin + gdb. "" noremap <Leader>px Yp!!sed -e "s+^+p /x +" \| gdb -q \| gawk "NR==1{print $NF}"<CR>kA = <ESC>J "" noremap <Leader>pd Yp!!sed -e "s+^+p /d +" \| gdb -q \| gawk "NR==1{print $NF}"<CR>kA = <ESC>J "" noremap <Leader>po Yp!!sed -e "s+^+p /o +" \| gdb -q \| gawk "NR==1{print $NF}"<CR>kA = <ESC>J "" noremap <Leader>pt Yp!!sed -e "s+^+p /t +" \| gdb -q \| gawk "NR==1{print $NF}"<CR>kA = <ESC>Ji0b "" noremap <Leader>pb Yp!!sed -e "s+^+p /t +" \| gdb -q \| gawk "NR==1{printf "\0b\%s",$NF}"<CR>kA = <ESC>J "" noremap <Leader>pb Yp!!sed -e "s+^+p /t +" \| gdb -q \| gawk "NR==1{print \"0b\"$NF}"<CR>kA = <ESC>J --//bash shell也可以进行如下操作。 $ echo $(( 0xa+10 )) 20 $ printf "0x%x\n" $(( 0xa+10 )) 0x14 --//当然缺点不支持太大的数值进行计算,最大0x7fffffffffffffff.大于它变成负数,也可以使用中括号代替2个括号。 $ echo $[ 0x7fffffffffffffff ] $[ 0x8000000000000000 ] $[0xffffffffffffffff] 9223372036854775807 -9223372036854775808 -1 --// 带小数点的也不行。 $ echo $[ 12.2+2 ] -bash: 12.2+2 : syntax error: invalid arithmetic operator (error token is ".2+2 ") --//我以前在vim写了一个小插件bccalc_linux.vim,仅仅实现10->16,16->10,16->16. --//16与10进制的混合运算一直没有实现,bc实现难度太大,使用bash这个功能相对简单,做一点点更新。 "" computer && convert hexadecimal or convert to hexadecimal or convert noremap <Leader>jd YpIecho $[ <ESC>A ]<ESC>!!bash<CR>kA = <ESC>J noremap <Leader>jh YpIprintf "0x%x\n" $[ <ESC>A ]<ESC>!!bash<CR>kA = <ESC>J vnoremap <Leader>jd mz"fy'><ESC>o<ESC>"fpIecho $[ <ESC>A ]<ESC>!!bash<CR>y$d$`za = <ESC>pJ vnoremap <Leader>jh mz"fy'><ESC>o<ESC>"fpIprintf "0x%x\n" $[ <ESC>A ]<ESC>!!bash<CR>y$d$`za = <ESC>pJ --//顺便还发现该插件linux版本存在一些小问题,另外写一篇文章。
[20251206]混合16进制与10进制的计算.txt
来源:这里教程网
时间:2026-03-03 22:56:59
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 云巨头锁定AI Agent未来现金流 直击2025 re:Invent
云巨头锁定AI Agent未来现金流 直击2025 re:Invent
26-03-03 - 一次微小的CPU波动,你能查到什么?
一次微小的CPU波动,你能查到什么?
26-03-03 - 2025年GEO优化系统源头TOP 5产品推荐
2025年GEO优化系统源头TOP 5产品推荐
26-03-03 - 四川冷链物流升级加码 以数智化筑牢连锁餐饮冻品供应链
四川冷链物流升级加码 以数智化筑牢连锁餐饮冻品供应链
26-03-03 - MongoDB数据库:现代应用开发的首选数据存储平台
MongoDB数据库:现代应用开发的首选数据存储平台
26-03-03 - Oracle的锁机制:Enqueue详解
Oracle的锁机制:Enqueue详解
26-03-03 - 2025年精选数据治理厂家推荐榜单:行业核心发展趋势
2025年精选数据治理厂家推荐榜单:行业核心发展趋势
26-03-03 - 2025年数据资产管理平台排行榜:国产崛起与国际格局下的品牌全景
2025年数据资产管理平台排行榜:国产崛起与国际格局下的品牌全景
26-03-03 - 【服务器数据恢复】华为云Stack虚拟化快照损坏导致民生数据丢失数据恢复案例
- 国际配售超额认购40余倍,创新实业“高成长+现金牛”双爆点
国际配售超额认购40余倍,创新实业“高成长+现金牛”双爆点
26-03-03
