main3.sh 781 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #!/bin/bash
  2. add_byte() {
  3. local a=$1
  4. local b=$2
  5. if [ $a -lt 0 ]; then
  6. a=$((256 + a))
  7. fi
  8. if [ $b -lt 0 ]; then
  9. b=$((256 + b))
  10. fi
  11. local sum=$((a + b))
  12. sum=$((sum % 256))
  13. if [ $sum -gt 127 ]; then
  14. sum=$((sum - 256))
  15. fi
  16. echo $sum
  17. }
  18. add_word() {
  19. local a=$1
  20. local b=$2
  21. if [ $a -lt 0 ]; then
  22. a=$((65536 + a))
  23. fi
  24. if [ $b -lt 0 ]; then
  25. b=$((65536 + b))
  26. fi
  27. local sum=$((a + b))
  28. sum=$((sum % 65536))
  29. if [ $sum -gt 32767 ]; then
  30. sum=$((sum - 65536))
  31. fi
  32. echo $sum
  33. }
  34. result1=$(add_byte 79 -46)
  35. echo "79 + (-46) = $result1"
  36. result2=$(add_byte -97 96)
  37. echo "-97 + 96 = $result2"
  38. result3=$(add_word 12868 -1219)
  39. echo "12868 + (-1219) = $result3"