2014-01-16 2 views
4

10 진수 값이있는 문자열이 있어야합니다. 예 : '0 2930 0' 이제 16 진수로 변환하면 '0000 0B72 0000'이라고 표시됩니다. 나는 16 진수로 split과 obase = 16을 사용하여 값을 bc로 변환 할 수 있는데, '0 B72 0'으로 답을 얻을 것이다. 내가 필요한 것은 '0000 0B72 0000'값을 얻는 것입니다. 누구든지 이것에 대해 어떤 생각을 밝힐 수 있습니까? 여기 쉘 스크립트에서 십진수 값을 16 진수로 인쇄하는 방법

내가 무슨 짓을했는지 있습니다 :

s1 ='2930' 
echo after converting it to hexadecimal 
s=`echo "obase=16; $s1" |bc` 
echo $s 

답변

5

원하는 형식으로 출력을 얻기 위해 사용 printf : 당신이 가지고있는 BC를 사용

$ printf "%04x " 0 2930 0 
0000 0b72 0000 
+0

고마워 .. 그 작동 ...하지만 지금, 만약 내가 그 바이트를 내리고 싶다면 ... 문자열 '00000b720000' '나는'0000 720b 0000 '출력 싶었어. Pls는 나를 도와줍니다 – user3202415

+0

@ user3202415 대신 새로운 질문을 올리실 수 있습니까? – devnull

2

,

WANTED=456 ; echo "obase=16 ;$WANTED"|bc 

및 배수

WANTED="{456 ;12 ;32000}" ; echo "obase=16 ;$WANTED"|bc 
관련 문제